如何使用jQuery获取表列索引?

我对jQuery及其用法有足够的了解,但今天我遇到了使用jQuery获取表格元素内匹配标签的列索引的麻烦.我想获得标签文本为Mobile的元素的索引.在这种情况下,索引应为2.我得到的是实际索引,但这不是正确的方法.所以我想知道为什么jQuery没有使用index()方法给我正确的索引.

我也为此写了JS Fiddler.

jQuery的

var elem = $('#tbl th');
var rIndex;
alert('Length : ' + elem.length);
var index = elem.filter(
    function(index){
        var labelText = $(this).find('label').text();        
        //alert(index + ' - ' + labelText);
        var result = labelText == 'Mobile';
        if (result)
            rIndex = index;
        return result;
    }).index();
alert("jQuery Index : " + index);
alert("Actual Index : " + rIndex);

HTML

<table id="tbl">
    <tr>
        <td></td>
        <th><label>Application No.</label></th>
        <td></td>
        <th><label>Name</label></th>
        <td></td>
        <th><label>Mobile</label></th>
        <td></td>
        <th><label>Gender</label></th>
    </tr>
</table>
最佳答案
如果没有将参数传递给.index()方法,则返回值是一个整数,指示jQuery对象中第一个元素相对于其兄弟元素的位置.

这将为您提供真正的索引
DEMO

elem.each(function(){
    if( $(this).find('label').text()=='Mobile') {
        alert(elem.index(this));
    }
});

转载注明原文:如何使用jQuery获取表列索引? - 代码日志