1

我有一个 id 为“myTable”的表。现在有一个文本框,我在其中写下项目名称以查找它是否存在于 myTable 单元格中。为此,我编写了以下代码 -

var retval=0;   
var search = $("#searchitem").val().trim();
$("table#myTable tr td").filter(function() {
    if($(this).text() == search){retval=1;alert('Same item found');}
else{retval=0;}
});

问题是,当它在表格单元格中找到相同的项目时,它会显示警报框。但是我的变量的值retval永远不会改变。它总是显示0。我该如何解决?

4

4 回答 4

1

我认为您要完成的工作可以通过使用 :contains() 选择器来完成,如下所示:

var search = $("#searchitem").val().trim();
var retval = $("table#myTable tr td:contains('"+search+"'") ? 1 : 0;

我还没有测试过,但我几乎可以肯定它有效。这是一种更清洁的方法,并且肯定更具可读性。

jQuery :contains() 文档: http ://api.jquery.com/contains-selector/

于 2013-08-24T08:05:18.517 回答
0

仅在找到时才更改变量值,因为您在开始时将变量分配为0

var retval=0;   
var search = $("#searchitem").val().trim();
$("table#myTable tr td").filter(function() {
    if($(this).text() == search){
        retval=1;
        alert('Same item found');
    }
});
于 2013-08-24T07:17:09.600 回答
0

请尝试return false这样

var retval=0;   
var search = $("#searchitem").val().trim();
$("table#myTable tr td").filter(function() {
    if($(this).text() == search){
        retval=1;
        alert('Same item found');
        return false;
    }else{
        retval=0;
    }
});
于 2013-08-24T07:10:12.417 回答
0

试试这个代码

var search = $("#searchitem").val().trim();
var filteredData = $("table#myTable tr td").filter(function(element, index) 
{
    return $(element).text() == search;
});

现在此代码返回满足条件的 TD 元素数组。

于 2013-08-24T09:05:06.480 回答