Javascript - 搜索表格列中的字符串

3

我正在搜索我的表格列以查找字符串“None”。它确实可以做到这一点,但我无法获取行号。我尝试使用“rowIndex”属性。不确定为什么会出现“NaN”(非数字)。表格有50行10列。我认为可能是因为我从列中提取而不是从行中提取。

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)

1
“this”的值是多少?确保它是当前行。 - krisk
2个回答

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;
    }
}

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

抱歉我几天没有回复。我在工作中有其他义务,占用了我所有的时间。我跟随“Surreal Dreams”的建议,直接粘贴代码就可以运行了。我相信JQuery的答案也可以解决问题,但我现在没有使用它。我只学习脚本编程一周左右,正在努力适应。感谢你们两个的回答。 - JohnB

1
我建议使用像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示例

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接