我有一个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元素的数组。