我试图从jQuery中的td元素获取表rowIndex。这就是我正在尝试的:
var element = $('td').filter(function() {
var Text = $(this).contents()[0].textContent.trim();
return parseInt(Text, 10) == some_Textvar;
});
var parent = element.parentNode;
var index = parent.rowIndex;
我收到以下错误
未捕获的TypeError:无法读取属性' rowIndex'未定义的(...)
HTML:
<div class="class1">
<table class="class2">
<tbody>
<tr>
<td>
</td>
</tr>
<tr>
......
元素肯定存在,因为我在其余代码中使用它。如何获得此td元素所在的行?
由于
答案 0 :(得分:1)
element
是jQuery对象,它没有parentNode
属性,因此它是undefined
所以错误是预期的。
使用.get()
/ [0]
获取底层DOM元素的引用,然后您就可以访问该属性。
检索与jQuery对象匹配的DOM元素。
var parent = element.get(0).parentNode;
var index = parent.rowIndex;
作为替代方案,使用jQuery可以使用.index()
如果没有向
.index()
方法传递参数,则返回值是一个整数,表示jQuery对象中第一个元素相对于其兄弟元素的位置
var index = element.parent().index();