Использование jQuery для определения количества элементов TR в данной таблице - PullRequest
4 голосов
/ 12 февраля 2009

Я видел несколько примеров того, как найти детей и т. Д., Но по какой-то причине я не могу понять это правильно ... какая-либо помощь от сообщества SO?

Ниже моя текущая "попытка" в коде -

var trCount = $ ("# table> tr"). Size ();

Ответы [ 6 ]

12 голосов
/ 12 февраля 2009

Это должно работать:

var count = $("#table tr").length;
4 голосов
/ 12 февраля 2009

Обычный Старый ДОМ:

document.getElementById('table').rows.length;

будет гораздо эффективнее, чем попросить jQuery отработать селектор и вернуть каждый элемент строки для вас.

Вам не нужно заставлять все, что вы делаете, в дыру в форме jQuery; иногда старые способы остаются лучшими. jQuery был создан для того, чтобы дополнять JavaScript в тех областях, где он был слабым, а не полностью заменять весь язык.

$ ("# table tr"). Size ();

Сбой для вложенных таблиц.

$ ("# table> tr"). Size ();

Сбой для tr в tbody (что очень часто происходит, поскольку они могут быть вставлены автоматически).

$ ("# table> tbody> tr"). Size ();

Сбой tr в thead / tfoot.

1 голос
/ 12 февраля 2009

Браузеры автоматически добавляют элемент tbody в DOM.

var trCount = $("#table > tbody > tr").size();

Отправленные ответы "table tr" не будут работать правильно с вложенными таблицами.

1 голос
/ 12 февраля 2009

Попробуйте:

var trCount = $("table tr").size();

Использование> может не работать, если вы используете tbody, thead и т. Д.

Кроме того, # выберет элемент, любой элемент с идентификатором таблицы. Просто убедитесь, что это то, что вы хотите.

1 голос
/ 12 февраля 2009

Без потомка у меня работает селектор, но не с.
работы:

var trCount = $("table tr").size();

не:

var trCount = $("table > tr").size();

Также убедитесь, что вы поместили объявление в docready, иначе оно не будет работать.

$(document).ready(function() {
     var trCount = $("table tr").size();
});
0 голосов
/ 12 февраля 2009

Должно работать, но я верю, что вы хотите:

var trCount = $("table > tr").size();

Если вы используете #table, вы запрашиваете таблицу с id='table', которая, я думаю, является ошибкой?

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