我有一个标签列表。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>
我有一个标签列表。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>
我为此做了一个原型,在包含 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');