jQuery:value()和text()不返回表格单元格的文本

时间:2010-02-24 16:05:20

标签: jquery dom jquery-selectors

我必须遗漏一些基本的东西。启发我。

我正在尝试获取ID(本例中为289):

<tr class="header">
  <th>ID</th>
  <th>2</th>
  <th>3</th>
</tr>

<tr class="highlight">
  <td class="">289</td>
  <td class="">field a</td>
  <td class="">field b</td>
</tr>
... more rows

我正在使用这个选择器:

$("#requests :nth-child(2) td:first")

Firebug控制台显示:

Object { length=1,  more...}

正确的。抓住第一个要素:

>>> $("#requests :nth-child(2) td:first")[0]
<td class="">

所以,我想我可以打电话给text()value()或其他方法。

如果我查看Firebug中的DOM选项卡,我看到我有{child}的“childNodes”和“firstChild”,但我无法弄清楚如何检索它。

3 个答案:

答案 0 :(得分:9)

您需要撰写$("#requests :nth-child(2) td:first").text()

使用jQuery对象的索引器($(...)[0])将返回原始DOM元素 如果要调用jQuery方法,则需要直接在jQuery对象上调用它们,而不使用索引器 如果要在jQuery集中的单个元素上调用jQuery方法,请调用eq,如下所示:$(...).eq(3).text()

jQuery中没有value()方法 val方法将设置或返回表单元素的值。

答案 1 :(得分:2)

当您使用括号表示法从jQuery对象中抓取对象时,它会抓取原始dom元素。而是使用$('selector').eq(0)。然后你的方法应该有用。

答案 2 :(得分:0)

.text()返回元素中的所有文本,因此应该可以正常工作。

如果没有看到更多HTML,就无法知道您的

$("#requests :nth-child(2) td:first")

匹配有问题的元素