2012-05-07 167 views
3

我在這裏有一個問題,我無法在我的表內設置我想要的屬性。jQuery更改元素中元素的屬性

<tr id="ROW1" class="duplicate"> 
    <td> 
    <textarea class="cl_text" cols="20" name="descriptions1"></textarea> 
    </td> 
    <td> 
    <input class="cl_form" size="10" value="" name="expectedDate1"> 
    </td> 
    <td> 
    <input class="cl_form" size="10" value="" name="slxInput1"> 
    </td> 
    ... 
    ... 
</tr> 

我可以改變TD元素的屬性,但不能改變TD元素的屬性。 我需要更改TD元素中的所有元素,很容易更改第一個元素和最後一個元素,但其他元素如何? 如果可能的話,我只是想要一個循環,將改變所有這些屬性#ROW1

編輯: 我添加了我的代碼不工作;

$("#ROW" + Num).each(function(index) { 
    temp = $(this).children(":first").attr("name"); 
    $(this).children(":first").attr("name", temp+Num); 
}); 
+0

請發表您的代碼(編輯問題並添加它)。 –

+0

您應該瀏覽jQuery文檔:http://api.jquery.com/category/selectors/和http://api.jquery.com/category/traversing/ –

回答

1
$("#ROW1 td").each(function(){ 
    $.each($(this).children(
$(this).attr(//put some attribute) 
)); 
}) 
+0

我以某種方式仍然需要在$(this)之後添加children()來訪問元素,謝謝 – MegaNairda

+1

這沒什麼道理......'children'不接受一個參數。 –

+0

你的權利,我沒有注意到。這只是我需要把'TD'元素放在腳本上,我沒有注意到答案的一部分 – MegaNairda

0

要獲得#ROW1所有子元素:

$('#ROW1').find('*') 
+0

但是不是#ROW1的子元素是TD元素? – MegaNairda

+0

@MegaNairda:'find'方法不僅獲得直接子元素,而且還獲得子元素的子元素,所以它將獲得td元素和其中的所有元素。 – Guffa

+0

@邁克爾:不,你稱之爲「直系孩子」是*孩子*,其他一切都是*後代* ......就像在現實生活中一樣。我的孩子的孩子不是我自己的孩子。 –

5

爲錶行中的所有輸入和文字區域更改屬性:

$('#ROW1 textarea, #ROW1 input').attr('someattr', 'value'); 
+0

或者如果只是'td'必須排除:'$('#ROW1> td *')'或類似的。 –