jQuery -检查标签's的内容是否等于sometext,然后做点什么

jQuery - Check if the tag's content is equal to sometext then do something

本文关键字:sometext 是否 然后 什么 标签 检查 jQuery      更新时间:2023-09-26

假设我的内容中有很多这样的内容div: <cite class="fn">blabla</cite>

我如何检查每个cite标签的内容(在这种情况下:blabla)与fn类,看看它是否等于"sometext"然后改变它的颜色为红色?

非常简单。

$('cite.fn:contains(blabla)').css('color', 'red');

编辑:虽然这也会匹配"blablablabla"

$('cite.fn').each(function () {
    if ($(this).text() == 'blabla') {
        $(this).css('color', 'red');
    }
});

这应该更准确。

编辑:实际上,我认为bazmegakapa的解决方案更优雅:
$('cite.fn').filter(function () {
    return $(this).text() == 'blabla';
}).css('color', 'red');;

您可以使用神奇的.filter()方法。它可以接受一个函数作为它的参数,这将把jQuery集合的元素减少到那些通过它的测试的元素(对于这些测试函数返回true)。之后,您可以轻松地在其余元素上运行命令:

var searchText = 'blabla';
$('cite.fn').filter(function () {
    return $(this).text() === searchText;
}).css('color', 'red');

jsFiddle演示

你可以这样做:

$('cite.fn').each(function() {
  var el = $(this);
  if (el.text() === 'sometext') {
     el.css({ 'color' : 'red' });
  }
});

这将对每个具有fn类的cite触发一个函数。该函数检查当前cite的值是否等于'sometext'。

如果是,那么我们将CSS的color (text-color)属性改为red

注意我在这个例子中使用jQuery,因为你已经特别标记了你的问题jQuery。忽略downvote,这是在我编辑一个错别字(el.val()而不是el.text())之前应用的

不使用jQuery:

var elms = document.querySelectorAll("cite.fn"), l = elms.length, i;
for( i=0; i<l; i++) {
    if( (elms[i].innerText || elms[i].textContent) == "blabla") {
        elms[i].style.color = "red";
    }
}