基於其HTML值的元素我有下面的標記: <ul class="list"> <li>4</li> <li>5</li> <li>6</li> </ul>
選擇在jQuery的
如何選擇與5和6的HTML值的李項,並添加類呢?
基於其HTML值的元素我有下面的標記: <ul class="list"> <li>4</li> <li>5</li> <li>6</li> </ul>
選擇在jQuery的
如何選擇與5和6的HTML值的李項,並添加類呢?
一種選擇是:contains selector ...
$("li:contains(5),li:contains(6)").addClass("myClassName");
然而,由於它只是尋找文字和不匹配的全部內容,這將還匹配<li>56</li>
,<li>16</li>
等。
所以,你或許應該做的,而不是爲使用.filter()像這樣:
$("li").filter(function() {
var text = $(this).text();
return text === "5" || text === "6"
}).addClass("myClassName");
$("ul.list li").each(function(){
if($(this).text() == '5' || $(this).text() == '6') {
$(this).addClass('theClass');
}
});
使用:contains()
選擇
$("li:contains('5')")
您可以使用.filter()
:
//setup object of the characters we want to match (we will be matching the keys, not values)
var whitelist = { 5 : 0, 6 : 0 };
//select all the list-item elements and filter them
var $selectedElements = $('.list').children().filter(function() {
//returns true if the text of this element is one of the keys in the `whitelist` variable
return ($(this).text() in whitelist);
});
如果返回true
的元素將被保留在集的元素,如果你返回false,那麼它將被從集合中刪除。
這匹配元素的整個文本,它不僅檢查文本是否包含字符。
我懷疑演示過於簡單化了......這是「價值」你的意思是文本
$('.list li').filter(function(){
var txt=$(this).text();
return txt==='4' || txt==='5';
}).addClass('someclass');
也許[此帖](HTTP:/ /stackoverflow.com/questions/1430290/jquery-select-based-on-text)會有幫助嗎? – Marshall 2012-02-28 17:55:17