检索当前行的表行索引

Jon*_*Jon 6 javascript validation jquery

我试图在失去焦点时验证文本输入.我想知道它所在的表格中的哪一行.这是我到目前为止所持有的并且它一直以未定义的形式返回.有任何想法吗?

$("div#step-2 fieldset table tbody tr td input").blur(function() {
    var tableRow = $(this).parent().parent();
    if ($.trim($(this).val()) == "") {
        $(this).addClass("invalid");
        alert(tableRow.rowIndex);
        $(this).val("");
    } else {
        $(this).removeClass("invalid");
        checkTextChanges();
    }
});
Run Code Online (Sandbox Code Playgroud)

bob*_*nce 14

rowIndex 是一个DOM属性,而不是一个jQuery方法,所以你必须在底层的DOM对象上调用它:

tableRow[0].rowIndex
Run Code Online (Sandbox Code Playgroud)

要不就:

var row= this.parentNode.parentNode;
alert(row.rowIndex);
Run Code Online (Sandbox Code Playgroud)

因为你并没有真正使用jQuery.

在jQuery 1.4中有$(row).index(),但它会扫描兄弟姐妹以找出它在父节点中的子元素编号.这个速度较慢,并且rowIndex在您有多个<tbody>s 的情况下会返回不同的结果.