Javascript 如何从两个jquery:contains()选择器实例中获取total实例
我需要关于如何从2个jquery:contains()选择器实例获取total实例的帮助。对于一些多个需求,我需要获得两个变量实例,并在不重复的情况下显示总体结果 为了进一步解释,以下是细节- html div块-Javascript 如何从两个jquery:contains()选择器实例中获取total实例,javascript,jquery,jquery-selectors,contains,Javascript,Jquery,Jquery Selectors,Contains,我需要关于如何从2个jquery:contains()选择器实例获取total实例的帮助。对于一些多个需求,我需要获得两个变量实例,并在不重复的情况下显示总体结果 为了进一步解释,以下是细节- html div块- <div id="results"></div> <div class="container"> <div class="keywords" style="display:none">Global, City1</div>
<div id="results"></div>
<div class="container">
<div class="keywords" style="display:none">Global, City1</div>
<div class="display" style="display:none">Results one for Global City1</div>
</div>
<div class="container">
<div class="keywords" style="display:none">Global, City2</div>
<div class="display" style="display:none">Results one for Global City2</div>
</div>
<div class="container">
<div class="keywords" style="display:none">Global, City3</div>
<div class="display" style="display:none">Results one for Global City3</div>
</div>
<div class="container">
<div class="keywords" style="display:none">Global, City4</div>
<div class="display" style="display:none">Results one for Global City4</div>
</div>
<div class="container">
<div class="keywords" style="display:none">Main1, City1</div>
<div class="display" style="display:none">Results one for Main1 City1</div>
</div>
<div class="container">
<div class="keywords" style="display:none">Main2, City2</div>
<div class="display" style="display:none">Results one for Main2 City2</div>
</div>
全球,城市1
全球城市1的结果1
全球城市2
全球城市2的结果1
全球城市3
全球城市3的结果1
全球城市4
全球城市4的结果1
Main1,城市1
结果1主要城市1
缅因州2号,城市2
结果1主要城市2
我的javascript-
var keyword= "Global";
var keyword2= "Main";
$('.container').has('.keywords:contains('+keyword+')').children(".display").show();
var text = "";
var i = 0;
while (i < keyword.length) {
text += ":contains('"+keyword[i]+"')";
i++;
}
// keyword 2
$('.container').has('.keywords:contains('+keyword2+')').children(".display").show();
var text2 = "";
var x = 0;
while (x < keyword2.length) {
text2 += ":contains('"+keyword2[i]+"')";
x++;
}
var results1 = $("div[class^=keywords]"+text+"").length;
var results2 = $("div[class^=keywords2]"+text2+"").length;
var results = results1 + results2;
$("#results").append(results);
var关键字=“全局”;
var关键字2=“Main”;
$('.container').has('.keywords:包含('+keyword+'))。子项(“.display”).show();
var text=“”;
var i=0;
while(i
我的测试用例-
提前谢谢。问题在于while循环在
关键字上迭代-不是您想要的关键字数组:
您可以这样做:
var keyword= "Global";
while (i < keyword.length) {
text += ":contains('"+keyword[i]+"')";
i++;
}
试一试
功能键过滤器(键){
变量$els=$('.container.keywords'),
$result=$();
$。每个(键,功能(i,键){
$result=$result.add($els.filter(':contains('+key+')));
});
返回$result;
}
功能测试(按键){
$('#results').append('Keys:'+Keys.join(',')+':'+keyFilters(Keys.length++'))
}
测试(['Global','Global']);
测试(['Main','Global'])代码>
全球,城市1
全球城市1的结果1
全球城市2
全球城市2的结果1
全球城市3
全球城市3的结果1
全球城市4
全球城市4的结果1
Main1,城市1
结果1主要城市1
缅因州2号,城市2
结果1主要城市2
Ok。因为答案不起作用。我会删除代码。谢谢
text += "div[class^=keywords]:contains('" + keywordArray[i] + "')"
// text += ":contains('"+keywordArray[i]+"')";
i++;
}
console.log(text);
var results = $(text).length;