jQuery - 检查标签的内容是否等于某个文本,然后执行某些操作

xpe*_*tor 18 javascript jquery dom jquery-selectors dom-traversal

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

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

非常简单.

pow*_*uoy 32

$('cite.fn:contains(blabla)').css('color', 'red');
Run Code Online (Sandbox Code Playgroud)

编辑:虽然这也符合"blablablabla".

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

那应该更准确.

编辑:实际上,我认为bazmegakapa的解决方案更优雅:

$('cite.fn').filter(function () {
    return $(this).text() == 'blabla';
}).css('color', 'red');;
Run Code Online (Sandbox Code Playgroud)


kap*_*apa 12

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

var searchText = 'blabla';

$('cite.fn').filter(function () {
    return $(this).text() === searchText;
}).css('color', 'red');
Run Code Online (Sandbox Code Playgroud)

jsFiddle演示