使用jquery和rest从td标记中获取值

时间:2015-09-06 20:56:44

标签: jquery rest

我从数组中得到了这个元素,

<td>​85%​</td>​

如何从中获取85%的值?我认为.val().text()可能有效。但不明白为什么不。有人可以解释如何获得价值以及我的理解存在缺陷。

这是我的控制台视图。

row
<tr>​<td>​DeviceName1​</td>​<td>​85%​</td>​<td>​87%​</td>​<td>​75%​</td>​<td>​63%​</td>​</tr>​
_.rest($(row).children())
[<td>​85%​</td>​, <td>​87%​</td>​, <td>​75%​</td>​, <td>​63%​</td>​]
_.rest($(row).children())[0]
<td>​85%​</td>​
_.rest($(row).children())[0].val()
Uncaught TypeError: _.rest(...)[0].val is not a function(…)

3 个答案:

答案 0 :(得分:1)

当您使用[0]获取数组中的第一个元素时,它不再是JQuery对象,因此它不会响应text()或任何其他JQuery函数。

你应该直接在JQuery对象上调用.text(),所以如果你想获得每个孩子的文本:

$.each($(row).children(), function(index, value) {
  console.log($(value).text());
});

或者如果你想得到第一个孩子的文字:

$(row).children().first().text()

答案 1 :(得分:0)

而是使用.html(),它将选择td中的任何内容。通常输入标签具有值属性,tr / td是表格结构的一部分。

答案 2 :(得分:0)

所以你基本上想要获得给定行中某个第n个表格单元格的值,对吗?

试试这个(你不需要_.rest):

$("td", row).eq(1).text()

这也适用于真实文档,请参阅http://fiddle.jshell.net/067x52fq/

[0].val is not a function错误是由于您获得了带有[0]的DOM元素,因此无法使用任何jQuery方法。