我想获取 tr 行中单元格的文本。 tr 行具有类属性和数据属性。 我选择 tr 行作为
var k = $('tr[class="BatchTypesRow"][data-rowselected="true"]');
然后
var m = k.children("td:first");
var sBtype = m.text();
alert(sBtype);
sBtype 包含行中所有单元格的文本。 我试过了
var sBtype = m[0].text();
捕获异常。
那么这里有什么问题呢? 如果该单元格不是该行中的第一个单元格,该怎么办?
最佳答案
这里,m
本身是该行的第一个 td
,因为 var m = k.children("td:first");
因此,只要选择 td:first
,m.text()
就不会给出整行。如果您使用 .children("td")
那么您将在 m.text()
中获取整行。所以在你的代码中,
var sBtype = m.text();
alert(sBtype);
实际上会给出第一个单元格的内容。
如果不是第一个单元格,您将使用 var m = k.children("td");
删除关键字 first
。在这种情况下,m[0] 将具有第一个单元格,m[1] 将具有第二个单元格,依此类推。
如果错了,请纠正我,我相信这就是你得到异常的方式,使用 m[0].text()
会抛出异常,因为 m[0],m[1]不是 JQuery 对象。它们是 HTMLTableCellElement 对象。
要将其用作 JQuery 对象,您必须使用 $(m[1]).text()
。
如果您知道要选择哪个元素及其序列,则可以使用
var m = k.children("td:nth-child(n)");
您可以将 n
替换为数字,以便选择该行的nth td
。
希望这有帮助。
关于javascript - 如何通过jquery从tr中获取第一个td文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32600729/