我有一个快速的脚本来搜索div中的一些文本(一个唯一的代码)并隐藏一个不同的元素(如果它存在):
var itemCode = ["000001"];
if( $(".itemCode").text().indexOf(itemCode) >= 0) {
$(".codeBox").addClass("hideElement");
}
但是我想扩展它,以便它找到多个文本(代码)中的一个,如果它们中的任何一个存在则隐藏元素:
var itemCode = ["000001", "000003", "000008"];
if( $(".itemCode").text().indexOf(itemCode) >= 0) {
$(".codeBox").addClass("hideElement");
}
这并不起作用。我确定它可能很简单,我应该在某个地方添加一个.each(),但是当我尝试尝试的东西时,我只是没有让它工作,我错过了什么?
答案 0 :(得分:2)
如果阵列中有几个物品代码,可能会稍微快点
var itemCode = ["000001", "000003", "000008"];
var regExpPattern = itemCode.join('|');
if($(".itemCode").text().match(new RegExp(regExpPattern, 'i'))) {
$(".codeBox").addClass("hideElement");
}
});
答案 1 :(得分:1)
indexOf
只接受一个(强制)参数,因此您必须遍历列表以查找符合条件的元素:
var itemCode = ["000001", "000003", "000008"];
var contains = itemCode.some(function(code) {
return $(".itemCode").text().indexOf(code) >= 0;
});
if (contains) {
$(".codeBox").addClass("hideElement");
}