Совместимость JavaScript с Internet Explorer - PullRequest
0 голосов
/ 10 августа 2011

У меня есть простая функция javascript для проверки всех флажков, когда установлен флажок заголовка.

function SelectAll(id) {       
    var grid = document.getElementById("<%=ui_downlinkGrid.ClientID %>");
    var cell;
    if (grid.rows.length > 0)
    {
        for (i = 0; i < grid.rows.length; i++)
        {
            cell = grid.rows[i].cells[0];
            cell.childNodes[1].checked = document.getElementById(id).checked;
        }
    }
}

Я проверил это в IE 9, и оно отлично работает.Однако, как только я получил его на Windows Server 2008, он не работает, и отладчик показывает эту ошибку: Объект не поддерживает это свойство или метод.

Это проблема совместимости?Как я могу решить это?

РЕДАКТИРОВАТЬ: ошибка в этой строке:

cell.childNodes[1].checked = document.getElementById(id).checked

enter image description here

1 Ответ

1 голос
/ 10 августа 2011

childNodes возвращает текстовые узлы, а также элементы, вполне вероятно, что теперь вы нажимаете текстовый узел, а не ввод, к которому вы пытаетесь получить доступ.Вместо этого используйте children или getElementsByTagName:

В следующем предполагается, что перед <input> существует элемент:

cell.children[1].checked = document.getElementById(id).checked;
...