3

我需要使用 javascript 或 jQuery 隐藏所有<a>带有文本或innerHTML匹配数字“foo”或自定义值的元素。

<li><a href="#" class="dir">foo</a></li>

我努力了

jQuery(document).ready(function() {
    if (jquery().text().html("foo"){
        ('li >a').fadeOut()
    }
});
4

2 回答 2

15
$('a:contains(foo)').hide();

完毕。

或者:

var customValue = "foo"
$('a').filter(function(){
    return this.innerHTML === customValue;
}).fadeOut();

使用后一个选项,您可以自定义更多,例如:

var customValue = "foo"
$('a').filter(function(){
    return this.innerHTML === customValue &&
           $(this).closest('div').length;
}).fadeOut();
于 2012-06-06T22:18:40.240 回答
3

一种方法,假设您正在搜索的文本正是您使用的字符串,无耻地从向 Jonathan Sampson致敬中 窃取:

创建:exactly选择器:

$.extend($.expr[":"], {
    exactly: function( element, index, details, collection ){
        return $(element).text() === details[3];
    }
});

像这样使用:

$('a:exactly("foo")').fadeOut();

参考:

于 2012-06-06T22:29:32.993 回答