在隐藏的Div中访问元素计数和值

时间:2010-03-08 20:32:01

标签: jquery jquery-selectors

我无法在JQuery中抓取一个DIV设置为隐藏的表中的TR计数。

以下是一个例子:

<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中。它设置为display:none。当我尝试运行这个JQuery代码时,它返回0。

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

有什么想法吗?

我试图找到计数,这样我就可以在表格中构建每个问题和权重的数组。由于ID为我提供了一个索引,这应该很简单,但事实上它隐藏在一个隐藏的DIV中会像上面的问题一样出现问题吗?

谢谢, Tegan Snyder

2 个答案:

答案 0 :(得分:2)

你的选择器说,“所有tr元素都是'id'值为'tbl_questions'的元素的直接子元素”。没有这样的“tr”元素。

摆脱“&gt;”在选择器中,看看是否有帮助。当你只是在某个特定容器“低于”的地方寻找元素时,你不需要(或想要)“&gt;”,这意味着只能 一个级别(即,在直接的孩子们。)

答案 1 :(得分:2)

尝试:

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/