2011-11-07 35 views
2

到目前爲止,我可以讓我的代碼高亮顯示特定的td,但更好的辦法是高亮顯示整行。有誰知道如何做到這一點?在jQuery中特定的內容在td中突出顯示

var mySearch = 'No'; 
$('table tbody tr td:contains("' + mySearch + '")').filter 
(function(){ 
if($.trim($(this).text()) == mySearch) 
    $(this).addClass("prequal-status-n");  
}); 
+1

你可能會失去選擇器的':contains'位。它會顯着減慢你的代碼,因爲它是一個jQuery擴展,所以禁用瀏覽器的本地(querySelectorAll)功能。由於您稍後正在執行'== mySearch'測試,因此根本不需要':contains'調用。 – lonesomeday

回答

2

通過改變$(this).addClass("prequal-status-n")$(this).closest('tr').addClass("prequal-status-n")你可以選擇整行,而不只是行內的單元格。

下面是一個使用.closest()選擇一個單元格的tr父標籤的的jsfiddle:http://jsfiddle.net/jasper/LhbUG/

注:.closest('tr')可以通過.parent()被替換爲td標籤的直接父是tr標籤。請記住,使用.parent()會將您的$(this)選擇器限制爲tr標記的直接後裔。

下面是雅一些文檔:

+1

在這種情況下,我會使用父(),我看不需要最接近() –

0

嘗試是這樣的:)

$("td:contains('" + mySearch + "')").closest("tr").toggleClass("prequal-status-n"); 
0

你可以使用closparentest(和找到tr

var mySearch = 'No'; 
$('table tbody tr td:contains("' + mySearch + '")').filter 
(function(){ 
if($.trim($(this).text()) == mySearch) 
    $(this).parent().addClass("prequal-status-n");  
}) 
0

嘗試

var mySearch = 'No'; 
$('table tbody tr td:contains("' + mySearch + '")') 
        .parent("tr").addClass("prequal-status-n"); 
0

您想使用closest方法來選擇<tr>包含<td>

$(this).closest("tr").addClass(...); 

closest的API文檔:

獲取匹配選擇器的第一個元素,從當前元素開始,並通過DOM樹進行。