2014-03-05 76 views
2

我正在搜索我的表格列的字符串“无”。它这样做,但我无法获得行号后。我试图使用“rowIndex”属性。不知道为什么它拉动“不是数字”(NaN)。表是50行10列。我假设它可能与我从一列而不是行拉开来。Javascript - 搜索表格列的字符串

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

什么“这个”的价值?确保它是当前行。 – krisk

回答

2

而不是列的所有值串联成一个字符串和搜索字符串,你可以代替的价值“无”列测试每个单元格的值。然后你会知道循环计数器的行号,如果你发现它而不是遍历每一行,你可以停止循环。

它看起来更像是这样的:

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

您还可以返回该行的值,而不是将其输出。

+0

对不起,我几天没有回答。我在工作中有其他的义务,这是我一直以来的工作。我与“超现实主义的梦想”一起走过了。我只是粘贴了代码,它工作。我相信JQuery的答案会起作用,但我现在不使用它。我现在只用了大约一个星期的时间编写脚本,只是试图使用它。谢谢你的答案。 – JohnB

1

我会建议使用丰富的JavaScript库如jQuery。

然后给下面的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.