javascript - 检查任何元素是否有文本 - 没有每个循环

标签 javascript jquery

如果任何 mdpoptags 具有文本作为变量 a,我想返回 false。 我想在没有 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>

问题:如果 aABBAB - 结果为 true。

我需要将整个 a 字符串与整个 mdpoptags 文本进行匹配。

是否可以使用 containsinclude... 只是没有 each 循环?

最佳答案

我添加了一些其他示例以使其更加通用。
为了简单起见,假设您要对所有匹配元素执行的操作是 .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();
}
<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 -->

这里的问题是 :contains() 也匹配“ABBABB”和“BBABBA”。

<小时/>

⋅ ⋅ ⋅

因此,您可能需要使用 .filter() 来代替:

var a = 'ABBA';
var matched = $('.mdpoptag').filter(function() {
    return $(this).text() === a;
});
if (matched.length) {
  matched.hide();
}
<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 -->

有关.filter()的文档:http://api.jquery.com/filter/

<小时/>

⋅ ⋅ ⋅

另请注意,如果您想为每个元素console()某些内容,则必须使用循环。

希望有帮助。

关于javascript - 检查任何元素是否有文本 - 没有每个循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50834959/

相关文章:

javascript - 如何将三元实现为点击处理程序

javascript - npm 恢复并发布旧的 npm 包

javascript - 在两个功能之间切换

javascript - 选择具有可变数据属性的元素,但有些元素带有破折号

jQuery 将小数四舍五入为 0.49 或 0.99

javascript - 如何将 CSS/HTML 添加到 Ajax 调用

javascript - 我如何激活第二次兜风之旅

javascript - CoffeeScript 中未定义静态属性的问题

javascript - Ember.js afterModel 钩子(Hook)触发两个相同的请求

php - HTML5 视频播放转换器