更改Jquery.filter()函数内的变量值



我有一个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。我该如何解决?

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

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

我还没有测试过,但我几乎可以肯定它有效。这是一种更干净的方法,当然也更可读。

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

请像这个一样尝试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;
    }
});

只有在找到变量时才更改变量值,因为您在开始时将变量分配给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');
    }
});

试试这个代码

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

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

相关内容

  • 没有找到相关文章

最新更新