2012-07-26 38 views
0

我有一些代碼,我想看看錶中的每一行,並尋找一個特定的類特定的類。jQuery使用選擇器後.find()

$("tr").each(function() { 
    $(this).find("td").find(".group_name").css("background-color", "red"); 
}); 

這樣,所有類「group_name」的td都變爲紅色。

+0

您何時打電話給我,順便說一下?是不是有一個特別的原因,你不僅僅是使用CSS定義來使類'group_name'的所有'​​'元素的背景顏色變爲紅色? (注意td和.group_name之間的空格): – 2012-07-26 09:50:33

+0

您顯示的代碼實際上正在執行(請注意td和.group_name之間的空格): $(「tr td .group_name」).css(「background-color」,「red」); – Azder 2012-07-26 09:53:07

+0

還是更好爲什麼要使用jquery。對於造型儘可能使用CSS – Neil 2012-07-26 09:54:15

回答

11

其實這已經足夠了:

$("tr td.group_name").css("background-color", "red"); 
+1

大多數的jQuery功能已經裝備了.each()調用內部:) – meeDamian 2012-07-26 09:56:16

+0

@ chester1000:是的,你只需知道哪些不是;-) – 2012-07-26 10:00:55

+0

謝謝,我的大部分問題來自其他地方(flexigrid)。 – jdborg 2012-07-26 10:01:23

2

使用此

$('tr').find('td.group_name').css('background-color', 'red'); 
-1

這就是你想要的東西:

 $("tr").each(function() { 
     $(this).find("td .group_name").css("background-color", "red"); 
    }); 
0

爲什麼這麼複雜? 這是很容易

$('tr td.group_name').css('background-color', 'red'); 
+0

啊傻我!我以爲只會選擇一個單一的 – Neil 2012-07-26 09:52:56

+1

@Neil作爲一般的經驗法則:如果您使用的功能**設置**(無論是屬性,屬性,事件處理程序,數據,無論如何)它會影響它所調用的jQuery對象中的所有元素。如果你使用**得到**的函數(比如'.val()'),它只會影響jQuery對象中的* first *元素。 – 2012-07-26 09:56:37

0

你並不需要遍歷它...

當你做$("tr td.group_name")將選擇TR裏面所有的td元素是具有類=「GROUP_NAME」

所以

$("tr td.group_name").css("background-color", "red"); 

將超過足夠:)

0

jQuery在這裏真的是過度殺傷,因爲您的最終目標是在任何<td>元素中添加一個紅色背景色,其中group_name類在<tr>元素內(它們何時不是?)。爲此,您可以使用CSS聲明:

td.group_name { 
    background-color: red !important; 
}