【问题标题】:Javascript - Search Table Column for StringJavascript - 字符串的搜索表列
【发布时间】:2014-03-05 21:36:55
【问题描述】:

我正在我的表格列中搜索字符串“无”。它会这样做,但之后我无法获得行号。我正在尝试使用“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)

【问题讨论】:

  • “this”的值是多少?确保它是当前行。

标签: javascript search


【解决方案1】:

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

看起来更像这样:

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

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

【讨论】:

  • 抱歉好几天没回复了。我在工作中还有其他需要花费我所有时间的义务。我选择了正确的“超现实梦想”。我刚刚粘贴了代码,它工作了。我确信 JQuery 的答案也会起作用,但我现在没有使用它。我现在只编写了大约一周的脚本,只是想习惯它。谢谢你们的回答。
【解决方案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.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-11
    • 1970-01-01
    • 2014-08-30
    相关资源
    最近更新 更多