目前使用contains()匹配特定关键字。如何将其展开以包含多个关键字? 尝试过使用|| (或)操作员,但没有快乐。
<!-- Product names include Apple iPad, Acer Iconia, Lenovo Thinkpad -->
<h1 id="pbtitle">Apple iPad 3</h1>
<div class="install_option" style="display:none;">
<div style="box-sizing:border-box; float:left;">
<a href="https://www.exmaple.com/acc" target="_blank">
<h3 style="font-weight:bold;">Would you like to view accessories?</h3>
</a>
</div>
</div>
$(".install_option").each(function() {
if($("h1#pbtitle:contains:contains('Acer' || 'Lenovo' || Apple )").length>0){
$('.install_option').css('display','block');
}
});
答案 0 :(得分:0)
这样做
if($("h1#pbtitle:contains('Acer'),h1#pbtitle:contains('Lenovo'),h1#pbtitle:contains('Apple')").length>0)
答案 1 :(得分:0)
使用JavaScript函数indexOf()
工作示例jsfiddle
var options = ['Acer','Lenovo','Apple']; // options that you want to look for
var text = $("#pbtitle").text(); // string where you want to look in
options.forEach( function( element ) {
if ( text.indexOf( element ) != -1 ) { // if its NOT -1 (-1 = not found)
alert( 'found' ); // then we found it .. do your magic
}
})
答案 2 :(得分:0)
冒险有点不在问题范围内,我猜产品清单是同类动态的。 在这种情况下,最好将属性添加到产品标签中,如:
<h1 id="pbtitle" has_install_option="true">Apple iPad 3</h1>
var condition = $('h1#pbtitle').attr('has_install_option') == 'true';
并在循环中检查该条件。 [想想你将拥有带有install_option的Apple产品或Appleseed产品的那一天......]
在这个例子中,最好将条件放在循环的一边,因为条件相对于循环元素是静态的