Javascript 如何使用DIV中具有多个匹配项的数组获取:contains()选择器的总实例?

Javascript 如何使用DIV中具有多个匹配项的数组获取:contains()选择器的总实例?,javascript,jquery,arrays,Javascript,Jquery,Arrays,这是对的后续查询 我在使用contains:selector获取总匹配时遇到了这个数组循环问题 这是我的变量- var filterarray = ["Content1", "goes"]; <div id="content" style="display:none">Content1 goes here</div> <div id="content" style="display:none">Content1 goes here too</div&g

这是对的后续查询

我在使用contains:selector获取总匹配时遇到了这个数组循环问题

这是我的变量-

var filterarray = ["Content1", "goes"];

<div id="content" style="display:none">Content1 goes here</div>
<div id="content" style="display:none">Content1 goes here too</div>
<div id="content" style="display:none">Content1 goes here again</div>
<div id="content" style="display:none">extra node</div>
var filterary=[“Content1”,“goes”];
内容1在这里
Content1也在这里
Content1又来了
额外节点
这是我的剧本-

totalSum = 0;
for (i=0;i<filterarray.length;i++){ 
        $( "div[id^=content]:contains('"+ filterarray[i] +"')").css( "display", "block" );      
        totalSum += $( "div[id^=content]:contains('"+ filterarray[i] +"')").length;      
    }

$("#results").append("Total Results: " +totalSum);
totalSum=0;
对于(i=0;i这可能会帮助您:

HTML:

Content1在这里
Content1也在这里
Content1又来了
额外节点
JS:

var filterary=[“Content1”,“goes”];
$(函数(){
总和=0;
var divs=[];

对于(i=0;i第一个建议使用类而不是id!因为id意味着UNICAL IDENTIFICATOR。请阅读相关内容

所以假设您有下一个html节点

<div class="content" style="display:none">Content1 goes here</div>
<div class="content" style="display:none">Content1 goes here too</div>
<div class="content" style="display:none">Content1 goes here again</div>
<div class="content" style="display:none">extra node</div>
Content1在这里
Content1也在这里
Content1又来了
额外节点
使用内容类迭代所有节点

var nodes = $(".content");
var filterarray = ["Content1", "goes"];
var total = 0;

for(var i = 0; i < nodes.length; i++){
    var current = $(nodes[i]);
    var text = current.text();
    var res = filterarray.reduce(function(p, a){
        return p && (text.indexOf(a) != -1);
    }, true);
    if(res) total++;
}

console.log(total)
var节点=$(“.content”);
var filterray=[“Content1”,“goes”];
var合计=0;
对于(var i=0;i

这可能会帮助您:
<div class="content" style="display:none">Content1 goes here</div>
<div class="content" style="display:none">Content1 goes here too</div>
<div class="content" style="display:none">Content1 goes here again</div>
<div class="content" style="display:none">extra node</div>
var nodes = $(".content");
var filterarray = ["Content1", "goes"];
var total = 0;

for(var i = 0; i < nodes.length; i++){
    var current = $(nodes[i]);
    var text = current.text();
    var res = filterarray.reduce(function(p, a){
        return p && (text.indexOf(a) != -1);
    }, true);
    if(res) total++;
}

console.log(total)