我有这个基本代码,如果.foo包含一个字符串,它会隐藏最近的tr:
$('.foo:contains("blah")').each(function() {
$(this).closest('tr').hide();
});
但现在是时候了,“blah”并不是我需要检查的唯一字符串,我意识到我现在需要使用数组但不确定如何。
我疯狂猜测并尝试:
var arr = ['blah', 'foo', 'bar'];
$('.foo:contains("+arr[]+")').each(function() {
$(this).closest('tr').hide();
});
但无济于事。
答案 0 :(得分:3)
您已关闭,但您还需要遍历数组以检查每个值。
var arr = ['blah', 'foo', 'bar'];
var i=0;
for (; i<arr.length; i++) {
$(".foo:contains('"+arr[i]+"')").each(function() {
$(this).closest("tr").hide();
});
}
答案 1 :(得分:2)
var arr = ['blah', 'foo', 'bar'];
$('.foo').each(function() {
if($.inArray($(this).text(),arr)!==-1 ) {
$(this).closest('tr').hide();
}
});
https://api.jquery.com/jQuery.inArray/
或者,使用filter():http://api.jquery.com/filter/
$( ".foo" )
.filter(function( ) {
return $.inArray($(this).text(),arr)!==-1;
}).closest('tr').hide();
答案 2 :(得分:-1)
这样的事情应该有效(尽管可能有更好的方法)。
var arr = ["John", "Jane", "Mike", "Ted"];
arr.forEach(function(val){
$(".foo:contains('" + val + "')").each(function(){
$(this).closest('tr').hide();
});
});