Не удается получить коллекцию таблицы строк в DOM с помощью FireFox - PullRequest
0 голосов
/ 23 февраля 2012

У меня была проблема в Firefox (с использованием 10.0.2), пытающегося использовать JavaScript для получения строк в таблице.Следующая работа в Chrome и IE, но не в Firefox.

var tbl = "myTable";
var allTR;
allTR = document.getElementById(tbl).childNodes[0].childNodes;

var table = document.getElementById(tbl);
var tbody = table.getElementsByTagName("tbody")[0];
allTR = tbody.getElementsByTagName("tr");
allTR = tbody.children;
allTR  = tbody.childNodes;
allTR = $("#myTable").find("tbody").find("tr");
allTR = $('#myTable tobdy tr');

В Firefox результирующий объект allTR отображается в Firebug как «неопределенный», хотя я вижу, что он имеет свойство длины.1004 *

Кто-нибудь знает, почему это произойдет?

Ответы [ 2 ]

0 голосов
/ 23 февраля 2012

, если вы хотите, чтобы все строки в таблице:

allTR = document.getElementById(tbl).getElementsByTagName("tr");

, если вы хотите строки в первом теле:

allTR =document.getElementById(tbl).getElementsByTagName("tbody")[0].getElementsByTagName('tr')
0 голосов
/ 23 февраля 2012

Мне кажется, что в вашей таблице могут быть пустые пробельные узлы, которые вы не рассматриваете.Например, IE <9 не отражает пустые текстовые узлы в своей DOM, в то время как все другие основные браузеры это делают, а это значит, что <code>table.childNodes[0] вполне может быть не тем, о чем вы думаете.

Самое простое решение - этодля использования удобных и универсально поддерживаемых свойств таблицы DOM, таких как rows:

var allTR = document.getElementById("myTable").rows;

Существует также удобное свойство cells <tr> элементов, если оно вам требуется.Элементы <tbody> также имеют свойство rows.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...