如果return false
中的任何一个文字为变量mdpoptags
,我想a
。
我希望在没有each
循环的情况下执行此操作。
var a = 'ABBA'
if ($('.mdpoptag:contains(' + a + ')').length > 0) {
console.log('323');
//return false;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class='mdpoptag'>ABBA</div>
<div class='mdpoptag'>ABB</div>
<div class='mdpoptag'>AB</div>
&#13;
问题:如果a
为ABB
或AB
- 结果为真。
我需要将整个a
字符串与整个mdpoptags
文字进行匹配。
是否可以使用contains
或include
...只是没有each
循环?
答案 0 :(得分:1)
我现在只是猜测,因为我认为你的问题的答案已经存在于你的问题中。
如果您只想显示那些不包含变量a
值的div,那么您可以这样做
var a = 'ABBA',
container = $('.mdpoptag:contains(' + a + ')');
if (container.length > 0) {
container.hide();
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class='mdpoptag'>ABBA</div>
<div class='mdpoptag'>ABB</div>
<div class='mdpoptag'>AB</div>
答案 1 :(得分:1)
我已经添加了一些其他示例,以使其更通用
我们假设您要对所有匹配元素执行的操作为.hide()
,以简化操作。
使用:contains()
:
var a = 'ABBA';
// If you want to execute a global action on all your elements, you can do the following:
var matched = $('.mdpoptag:contains(' + a + ')');
if (matched.length) {
matched.hide();
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class='mdpoptag'>ABBA</div><!-- ABBA is here -->
<div class='mdpoptag'>ABB</div>
<div class='mdpoptag'>AB</div>
<div class='mdpoptag'>ABBABB</div>
<div class='mdpoptag'>BBABBA</div>
<div class='mdpoptag'>ABBA</div><!-- ABBA is here too -->
&#13;
这里的问题是:contains()
匹配&#34; ABBABB&#34;和&#34; BBABBA&#34;太
⋅ ⋅ ⋅
因此,您可能希望改为使用.filter()
:
var a = 'ABBA';
var matched = $('.mdpoptag').filter(function() {
return $(this).text() === a;
});
if (matched.length) {
matched.hide();
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class='mdpoptag'>ABBA</div><!-- ABBA is here! -->
<div class='mdpoptag'>ABB</div>
<div class='mdpoptag'>AB</div>
<div class='mdpoptag'>ABBABB</div>
<div class='mdpoptag'>BBABBA</div>
<div class='mdpoptag'>ABBA</div><!-- ABBA is here too -->
&#13;
有关.filter()
的文档:http://api.jquery.com/filter/
⋅ ⋅ ⋅
另请注意,如果您想为每个元素console()
,则必须使用循环。
希望它有所帮助。
答案 2 :(得分:0)
您的变量内容中存在拼写错误。
edit
&#13;
var a = 'ABBA';
if ($('.mdpoptag:contains(' + a + ')').length > 0) {
console.log('found!');
//return false;
}
&#13;