2013-03-23 38 views
0

我想在jquery中選擇具有特定文本的跨度。 jquery「contains」不是很嚴格,所以如果我使用它並搜索「tab」,它也會選擇「table」,這是我不想要的。jQuery找到特殊文本的跨度

$(".spanbox:contains('Tab')").css('background-color', 'Green') 

的例子,跨度:

<span class="spanbox">Tab</span> 
<span class="spanbox">Table</span> 

有沒有一種方法具有一定的文字上的類成員的專門選擇?

+0

認定爲重複。 OP,請參閱:http://stackoverflow.com/a/813688/614152 – 2013-03-23 20:16:16

回答

3

可以使用.filter()與函數的參數,像這樣做:

$(".spanbox").filter(function() { 
    return $(this).text() == 'Tab'; 
}).css('background-color', 'Green'); 
1

試試這個方法:

$.fn.textEquals = function (text) { 
    var match = false; 
    $(this).each(function() { 
     if ($(this).text().match("^" + escapeRegex(text) + "$")) { 
      match = true; 
      return false; 
     } 
    }); 
    return match; 
}; 

$(".spanbox").textEquals('Tab').css('background-color', 'Green'); 
$(".spanbox").textEquals('Table').css('background-color', 'Red');