Доступ к количеству элементов и значениям внутри скрытого Div - PullRequest
1 голос
/ 08 марта 2010

У меня проблемы с получением значения TR в JQuery для таблицы, которая внутри набора DIV скрыта.

Вот пример:

<div id="questions" style="display: none;">
<table id="tbl_questions">
<thead>
 <tr>
  <th>Question</th>
  <th>Weight</th>
 </tr>
</thead>
<tbody>
 <tr id="q0">
  <td id="td_question0">Some Question 0</td>
  <td id="td_wieght0">Some Weight 0</td>
 </tr>
 <tr id="q1">
  <td id="td_question1">Some Question 1</td>
  <td id="td_wieght1">Some Weight 1</td>
 </tr>
</tbody>
</table>
</div>

Обратите внимание, что таблица находится внутри содержащего элемента div. Он настроен на отображение: нет. Когда я пытаюсь запустить этот код JQuery, он возвращает 0.

var question_count = $("#tbl_questions> tr").size();
alert(question_count);

Есть идеи?

Я пытаюсь определить количество, чтобы затем мог построить массив каждого вопроса и веса в таблице. Поскольку идентификаторы предоставляют мне индекс, это должно быть просто, но будет ли проблема, что он содержится в скрытом DIV, такой же, как и в предыдущем вопросе?

Спасибо, Теган Снайдер

Ответы [ 2 ]

2 голосов
/ 08 марта 2010

Попробуйте:

var question_count = $("#tbl_questions tbody tr").size();

Это выберет строки, которые являются потомками tbody, который идет от #tbl_questions, независимо от глубины вложения. Смотри http://api.jquery.com/descendant-selector/.

Следующее также должно работать, так как tbody является прямым потомком #tbl_questions, а tr, содержащий ваши вопросы, являются прямыми потомками элемента tbody:

var question_count = $("#tbl_questions > tbody > tr").size();

Также см. http://api.jquery.com/child-selector/

2 голосов
/ 08 марта 2010

Ваш селектор говорит: «все элементы tr, которые являются прямыми потомками элемента, чье значение« id »равно« tbl_questions »». Нет таких элементов "tr".

Избавьтесь от ">" в селекторе и посмотрите, поможет ли это. Когда вы просто ищете элементы где-то «внизу» определенного контейнера, вам не нужен (или не нужен) символ «>», что означает только на один уровень вниз (т. Е. На прямом дети).

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