为什么jQuery的rowIndex属性返回了element.parents(“tr”)行未定义?

时间:2010-06-19 06:28:19

标签: jquery

如果我获得对父元素的引用,如下所示:

function findParentRow(srcElement) {
    var curElement = srcElement;
    while (curElement && (curElement.tagName != "TR")) {
        curElement = curElement.parentElement;
    }
    return (curElement.tagName == 'TR' ? curElement : null);
}

我可以:

var parentRow = findParentRow(someElement);
alert(parentRow.rowIndex);

我会得到一个rowIndex警报。但如果我:

var parentRow = $(chkBox).parents("tr");

我可以

alert(parentRow);

并获得一个对象,但如果我

alert(parentRow.rowIndex);

我未定义。相反,我也有:

alert($(pRow).attr("rowIndex"));

获取索引。

为什么会这样?

1 个答案:

答案 0 :(得分:2)

因为parentRow现在是jQuery对象...使用.index()代替rowIndex ..

尝试.closest()而不是.parents(),..

var parentRow = $(chkBox).closest("tr");
alert(parentRow.index());