-1

我有一个标签列表。li我想检查是否有任何li标签包含特定文本。如果有我需要添加一个名为的类,该类包含该特定文本disabled的相应li标签。有人可以帮我吗

<ul class="default">
      <li>Text 1</li>
      <li>Text 2</li>
      <li>Text 3</li>
      <li>Text 4</li>
      <li>Text 5</li>
</ul>
4

3 回答 3

1

试试这个

$('li:contains("Text 4")').addClass("test");

Js小提琴

于 2013-06-11T15:08:38.583 回答
0

使用 Jquery .contains()

$("li:contains(Text 1)")

此处示例jQuery :contains() 选择器

于 2013-06-11T15:07:03.767 回答
0

我为此做了一个原型,在包含 jQuery 之后复制它:

//@Author Karl-André Gagnon
if(!$.fn.filterText) $.fn.filterText = function(text, caseSensitive){
    var returnedObj = $(),
        caseSensitive = caseSensitive || false,
        $this = $(this);
    if(typeof text == 'object'){
        for(var i = 0; i < text.length; i++){
            if(typeof text[i] == 'string'){
                console.log(i);
                returnedObj = returnedObj.add($this.filter(function(){
                    var search = caseSensitive ? text[i] : new RegExp(text[i], 'i')
                    return $(this).text().search(search) != -1;
                }))

            }
        }
    }else if(typeof text == 'string'){
        returnedObj = returnedObj.add($this.filter(function(){
            var search = caseSensitive ? text : new RegExp(text, 'i')
            return $(this).text().search(search) != -1;
        }))
    }
    return returnedObj;
}

然后你可以这样称呼它:

$('li').filterText(['text 1', 'text 2']).addClass('disable');
//Or
$('li').filterText('text 3').addClass('disable');

如果您想区分大小写,也可以添加第二个 aguemnt。

$('li').filterText('Text 3', true).addClass('disable');
于 2013-06-11T15:09:39.417 回答