如果id为'word'的div中的任何跨度具有值v的内部HTML,我将如何编写一个返回true的jquery函数?对于选择器,我有:
$('#word span').html()
我对于迭代它们的正确方法感到困惑,并返回一个布尔值,因为目前我在该div中有5个span标记。
答案 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
});