如果 id 为“word”的 div 中的任何跨度具有值为 v 的内部 HTML,我将如何编写一个返回 true 的 jquery 函数?对于选择器,我有:
$('#word span').html()
我对遍历它们并返回布尔值的正确方法感到困惑,因为目前我在该 div 中有 5 个 span 标签。
如果 id 为“word”的 div 中的任何跨度具有值为 v 的内部 HTML,我将如何编写一个返回 true 的 jquery 函数?对于选择器,我有:
$('#word span').html()
我对遍历它们并返回布尔值的正确方法感到困惑,因为目前我在该 div 中有 5 个 span 标签。
您可以使用:contains
as in $("#word span:contains(v)")
,但这会选择包含“v”的跨度,而不是将其作为精确值。 仅返回所选第一个.html
元素的 html 字符串,因此您可能想要迭代并进行精确比较:.each
var count = 0;
$("#word span").each(function () {
if ($.trim($(this).text()) === 'v') {
count++;
}
});
contains
器由于您已经在使用 jQuery,您可以利用它的.contains
方法或 ':contains' 伪选择器:
$("#word span").contains("word")
或者
$("#word span:contains(word)")
对于包含该单词的每个跨度,这不会返回 true,而是包含该单词的元素。你会留下一个匹配元素的列表,可以像这样操作:
var $matched = $("word span").contains("word");
$matched.each(function (i, el) {
// do something with the el
});
您可以使用filter
方法:
$("#word span").filter(function () {
return this.innerHTML === v; // in case that v is a variable
// return $(this).text() === 'v';
}).length;