2011-05-10 62 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"); 
    } 
});