2012-05-07 26 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の下にあるすべての属性を変更するループが必要でした。

EDITED: 私のコードは機能しませんでした。

$("#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

'$( '#ROW1> td *')'またはそれに類するものだけを 'td'から除外しなければならない場合。 –

関連する問題