Невозможно переключить отображение строк таблицы в IE с помощью getElementsByName () - PullRequest
3 голосов
/ 19 мая 2010

Я хочу показать и скрыть строки таблицы на основе значения поля выбора, и это работает в Firefox, но не в IE:

<select onChange="javascript: toggle(this.value);">
 <option value="cat0">category 0</option>
 <option value="cat1">category 1</option>
</select>

<table>
<tr name="cat0">
  <td>some stuff v</td>
  <td>some stuff v</td>
</tr>
<tr name="cat0">
  <td>some stuff d</td>
  <td>some stuff d</td>
</tr>
<tr name="cat1">
  <td>some stuff a</td>
  <td>some stuff a</td>
</tr>
<tr name="cat1">
  <td>some stuff b</td>
  <td>some stuff b</td>
</tr>
</table>
<script type="text/javascript">
function toggle(category)
{
    // turn everything off
    for (var i = 0; i < 2; i++)
    {
        var cat = document.getElementsByName('cat' + i);
        for (var j = 0; j < cat.length; j++)
            cat[j].style.display = 'none';
    }

    // turn on category chosen
    var cat = document.getElementsByName(category);
    for (var i = 0; i < cat.length; i++)
        cat[i].style.display = '';
}
// start by showing cat0
toggle('cat0');
</script>

Ответы [ 3 ]

6 голосов
/ 19 мая 2010

IE не позволяет получить доступ к строкам таблицы, используя метод document.getElementsByName. Если вы используете идентификаторы вместо имени, это будет работать. Смотрите эту страницу для кода, который делает именно то, что вы ищете: http://www.toolazy.me.uk/template.php?content=getelementsbyname.xml

1 голос
/ 19 мая 2010

Если в вашем втором цикле for есть строки таблицы, необходимо установить для свойства display значение table-row

0 голосов
/ 20 сентября 2011

Существует действительно ошибка IE, которую вы можете использовать! Просто установите для каждого элемента и имя, и идентификатор (оба должны иметь одинаковое значение!). Например: <tr name="cat0" id="cat0"> Теперь getElementsByName будет работать и в IE.

пс. Я знаю, что это старый вопрос, но я пытался решить эту проблему 5 минут назад. Так что это может кому-то помочь: p

...