jQuery如果div包含多个文本字符串

时间:2018-02-21 11:01:39

标签: javascript jquery string

我有一个快速的脚本来搜索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(),但是当我尝试尝试的东西时,我只是没有让它工作,我错过了什么?

2 个答案:

答案 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");
}