Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Видимость строк в таблице (https://javascript.ru/forum/misc/4607-vidimost-strok-v-tablice.html)

Mars_ 07.08.2009 12:42

Видимость строк в таблице
 
Необходимо в зависимости от сделанного пользователем выбора скрывать или показывать некоторые строки в таблице, пишу такой код:

var table = document.getElementById("ReportTable");
for (var i = 0; i < table.childNodes.length; i++)
{
var row = table.childNodes[i];
if (.....)
{
row.setAttribute("visible","false");
}
}

Но почему-то не работает...

Андрей Параничев 07.08.2009 13:29

Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[js]
... ваш код...
[/js]


О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.

По теме вопроса:
С таблицами лучше работать через специальные свойства и методы, например в вашем случае перебирать так:
var table = document.getElementById("ReportTable");
for (var i = 0; i < table.rows.length; i++)
{
var row = table.rows[i];
if (.....)
{
row.setAttribute("visible","false");
}
}

Mars_ 11.08.2009 12:11

Попробовал так, все равно не работает...

Mars_ 11.08.2009 12:16

Добавлю, что это таблица asp.net, может быть тут какая-то загвоздка

Riim 11.08.2009 12:18

Цитата:

Сообщение от Mars_
Добавлю, что это таблица asp.net

Вам на другой форум. Например, сюда: http://www.cyberforum.ru/csharp-net/

Mars_ 11.08.2009 12:21

Почему, скрыть строки то я щочу именно с помощью javascript, с помощью C# то это легко, но не хотелось бы перезагружать страницу

Riim 11.08.2009 12:27

Устанавливайте нужным tr "visible=false"

Greider 23.01.2013 13:24

Добрый день! У меня такая проблема - нужно скрыть несколько строк таблицы подряд, выглядит примерно так:

<table>
            <tr><td><a href="#" onclick="openbox('box1'); return false">скрыть/развернуть</a></td></tr>
            <tr><td class="box1" style="display: none;">1.</td></tr>
            <tr><td class="box1" style="display: none;">2.</td></tr>
            <tr><td class="box1" style="display: none;">3.</td></tr>
            <tr><td><a href="#" onclick="openbox('box2'); return false">скрыть/развернуть</a></td><td></td></tr>
            <tr><td class="box2" style="display: none;">4.</td></tr>
            <tr><td class="box2" style="display: none;">5.</td></tr>
            <tr><td class="box2" style="display: none;">6.</td></tr>
</table>


Скрипт набросал в лоб, но все равно не работает... может что посоветуете, как лучше сделать и в каком нарпавлении копать?
Раньше у меня были блоки <div> с ID, но кода несколько строк то такой вариант не работает, т.к. ID должен быть уникальным. Пробую с getElementsByClassName... но никак.

function openbox(id){
	    display = document.getElementsByClassName(id).style.display;
	    if(display==\'none\'){
	       document.getElementsByClassName(id).style.display=\'table-row\';
	    }else{
	       document.getElementsByClassName(id).style.display=\'none\';
	    }
	}
	</script>';

skfyann 23.01.2013 13:38

getElementsByClassName вернет массив


Часовой пояс GMT +3, время: 00:25.