2012-02-16 13 views
3

私は、この24は 'D-D' があると私は取得したいと思います:変更HTML要素


私はこれを使用している場合.... ID = "dede1" をD-D 'のid = "dede0" はD-D'
var i=0; 
     var dede="dede"; 
     var dedos="dede" 
      $('dd').each(function(){ 

      dede=dede&i;       
      $('dd').attr("id",dede); 
      i++; 
      dede=dedos; 
      }); 

私は一般的な 'dd'のIDを変更しますが、すべての特定のIDを変更することはできますか?

あなたはeach()this現在の要素を指し、あなたは「インデックス」にインデックスプロパティを使用することができて反復する場合ヨ

$('dd').each(function(index, el){ 
    //you could also use el.id       
    this.id = "dede"+index; 
    }); 

を試してみてください、非常に多くの

アルバロ・

答えて

1

をありがとうコメントに示唆されているさまざまなID

+0

は( 'i'はループの外で必要とされるだけの場合には代わりにindex''のまだあなたが 'i'を使用している理由でありますインデックスに変更すると副作用が少なくなる) – Chris

+0

@Chrisがインデックスに変わることはさらに良くなりました。私はちょうど急いで、それを考えなかったので、私はコードを更新します –

+0

クール。ほとんどの人が気にかけないパラメータリストに明示的に入れるので、私はちょうど興味がありました。 :) – Chris

1

試用版:

var i = 0; 
var dede = "dede"; 
var dedos = "dede" 

$('dd').each(function() { 
    dede = dede + i;       
    $(this).attr("id", dede); 
    i++; 
    dede = dedos; 
}); 
+0

あなたは単に 'this.id = dede'を実行して電話を保存することができます –

1

あなたのコードの問題は、あなたがそう、すべての反復がすべて<dd>のIDを設定して、$('dd')で再びループ内のすべての<dd>の要素を選択していることです。したがって、ループの終わりには、すべての要素が最新のiが有効なものと同じIDを持ちます。これを修正するには、this(またはe、jQuery each()メソッドで提供されているように)のような現在の要素を使用できます。

私は考えることができる最もコンパクトなソリューションです:

$('dd').each(function(i, e){      
    e.id = 'dede' + i; 
});​ 
+0

すばらしくて最適です!!!どうもありがとうございました!!! –

関連する問題