检查是否有任何标签具有特定的内部HTML

时间:2012-12-27 20:25:12

标签: javascript jquery html iterator

如果id为'word'的div中的任何跨度具有值v的内部HTML,我将如何编写一个返回true的jquery函数?对于选择器,我有:

$('#word span').html()

我对于迭代它们的正确方法感到困惑,并返回一个布尔值,因为目前我在该div中有5个span标记。

3 个答案:

答案 0 :(得分:4)

您可以在:contains中使用$("#word span:contains(v)"),但选择包含'v'的范围,而不是将其作为精确值。 .html仅返回所选第一个元素的html字符串,因此您可能希望使用.each进行迭代并进行精确比较:

var count = 0;
$("#word span").each(function () {
   if ($.trim($(this).text()) === 'v') {
      count++;
   }
});

答案 1 :(得分:2)

您可以使用filter方法:

$("#word span").filter(function () {
      return this.innerHTML === v; // in case that v is a variable
      // return $(this).text() === 'v';  
}).length;

答案 2 :(得分:1)

contains选择器

由于您已经使用jQuery,您可以利用其.contains方法或':contains'伪选择器:

$("#word span").contains("word")

OR

$("#word span:contains(word)")

对于包含单词的每个跨度,这不会返回true,而是包含该单词的元素。您将得到一个匹配元素列表,可以这样操作:

var $matched = $("word span").contains("word");

$matched.each(function (i, el) {
    // do something with the el
});

参考

http://api.jquery.com/jQuery.contains/