我有一个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
。我该如何解决?
答案 0 :(得分:1)
我认为您要完成的任务可以通过使用:contains()选择器完成,如下所示:
var search = $("#searchitem").val().trim();
var retval = $("table#myTable tr td:contains('"+search+"'") ? 1 : 0;
我没有测试过,但我几乎可以肯定它有效。这是一种更清洁的方法,确实更具可读性。
jQuery:contains()docs: http://api.jquery.com/contains-selector/
答案 1 :(得分: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;
}
});
答案 2 :(得分: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');
}
});
答案 3 :(得分:0)
试试此代码
var search = $("#searchitem").val().trim();
var filteredData = $("table#myTable tr td").filter(function(element, index)
{
return $(element).text() == search;
});
现在这段代码返回满足条件的TD元素数组。