2011-05-10 65 views
0

有這樣的結構查找HTML文本和標籤父

<tr class=""> 
    ...    
         <span class="">my-marker-1</span> 
    ... 
</tr> 

如何找到只有一個字「標記」,並給予TR一類特殊的?

+0

你能否讓你的問題有點清楚? – Anji 2011-05-10 13:35:14

回答

3

您可以使用:contains()選擇:

$("tr:contains(my-marker-1)").addClass("my-class-1"); 

但是,你應該知道,:contains()執行通配符搜索元素的文本,因此它將匹配cat,categorypit,capital。如果這對你來說太寬泛,你可以使用filter()

$("tr").filter(function() { 
    return $(this).find("span").text() == "my-marker-1"; 
}).addClass("my-class-1"); 
0

嘗試類似這樣的東西。

$("tr td span.label-field").val("marker").closest("tr").addClass("special"); 
+0

'val()'不能像那樣工作。 – 2011-05-10 13:54:22

0

假設你想一類適用於所有TR s的包含文本包含單詞「標記」跨班級tabledrag-leaf,這會做你需要什麼:

$('tr.tabledrag-leaf td').filter(function() { 
    return $(this).children('span.label-field').html().indexOf('marker') !== -1; 
}).parent().addClass('has-marker'); 

jQuery.filter()詳細瞭解這是如何工作的。

+0

這會將類應用於'td'元素,而不是'tr'。 – 2011-05-10 13:53:47

+0

哎呀 - 修好了。 :) – namuol 2011-05-10 14:36:37

0

如果「標記」總是要在一個跨度:

$("span").each(function() { 
    if ($(this).text() == "my-marker-1") { 
     $(this).parent("tr").addClass("special_class"); 
    } 
});