Javascript - 搜索表格列的字符串

时间:2014-03-05 21:36:56

标签: javascript search

我在Table Column中搜索字符串" None"。它这样做但我无法获得行号。我试图使用" rowIndex"属性。不知道为什么它会拉动#34;不是数字" (NAN)。表是50行10列。我假设它可能与我从列而不是Row中拉。

function F0416()                                                                   
{

var tab = document.getElementById('part1Table');
var l = tab.rows.length;
var s = '';
for ( var i = 0; i < l; i++ )
{var tr = tab.rows[i];
var cll = tr.cells[2];                                                              
s += ' ' + cll.innerText;
}

var y = (s.indexOf('None') != -1)                                                   
document.write(this.rowIndex + 1)

2 个答案:

答案 0 :(得分:2)

不是将列的所有值连接成字符串并搜索字符串,而是可以测试列中每个单元格的值为“None”。然后你就会知道循环计数器中的行号,你可以在找到它时停止循环,而不是遍历每一行。

看起来更像是这样:

for ( var i = 0; i < l; i++ ) {
    var tr = tab.rows[i];
    var cll = tr.cells[2];                                                              
    if(cll.innerText.indexOf('None') != -1) {
        document.write(i + 1);
        break;
    }
}

您也可以返回行的值而不是输出它。

答案 1 :(得分:2)

我建议使用像JQuery这样丰富的javascript库。

然后给出以下HTML:

<table>
    <tr><td>Row 1- Column 1</td><td>Row 1 - Column 2</td>
    <tr><td>none</td><td>Row 2 - Column 2</td>
    <tr><td>Row 3- Column 1</td><td>Row 3 - Column 2</td>
</table>

您可以使用以下内容获取包含none的所有行:

var rows = $('table tr').filter(":contains('none')");

查看this Fiddle example.