2011-12-18 23 views
0

的顏色我有這個表:jQuery的 - 改變一個特定的表元素

<table border=1 id="Table"> 
<tr> <th> Product </th> <th> Price </th> <th> Shop </th> </tr> 
<tr> <td> Stuff1 </td> <td> 10$ </td> <td> Shop1 </td></tr> 
<tr> <td> Stuff2 </td> <td> 0$ </td> <td> Shop2 </td></tr> 
</table> 

上,我嘗試使用以下jQuery代碼:

var cell = $("#Table").find("td")[4]; 
cell.css("background-color", "red"); 

$("#Table").find("td")[4].innerHTML給我Stuff2。但我似乎無法用jQuery改變CSS,甚至使用html()

回答

1

此:

var cell = $("#Table").find("td")[4]; 

讓你在指數4所以它不僅具有原生的DOM方法的DOM元素。

改成這樣調用jQuery方法:

var cell = $("#Table").find("td").eq(4); 

或本:

var cell = $("#Table td").eq(4); 
+2

非常感謝,5分鐘內回答我的CS老師在3小時內無法回答。 – Sefam 2011-12-18 20:49:33

+0

@ user1040736:不客氣。 – RightSaidFred 2011-12-18 20:50:28

0

使用[]提取的DOM元素,所以你不能事後在其上使用的CSS()jQuery的方法。

使用一個選擇:

var $cell = $("#Table").find("td:eq(4)"); // or $("#Table").find("td").eq(4); 
$cell.css("background-color", "red"); 

注:按照慣例,jQuery的變量應該前綴$(如$cell),所以他們很容易這樣。

0

使用數組符號時,不再是jQuery對象,而是普通的DOM節點。您需要的是:eq選擇器:

var cell = $("#Table").find("td:eq(4)"); 
cell.css("background-color", "red"); 

cf. http://api.jquery.com/eq-selector/

相關問題