2

ここで使用する用語がわかりませんが、クラスで要素を選択するときに、複数の異なる要素に異なる値を割り当てる方法はありますか?以下のコードでは、class = "out"のすべての要素に、クラス "value"の隣接する(いとこ)入力要素の値を入力させたいと思います。(実際、それはもっと複雑ですが、それは私の単純化された質問です)。

<tr>
   <div id="samp1">
     <td>Sample 1</td>
     <td><input class="value" type="number" value="100"></td>
     <td><span class="out"></span></td>
   </div>
</tr>
<tr>
   <div id="samp2">
     <td>Sample 2</td>
     <td><input class="value" type="number" value="200"></td>
     <td><span class="out"></span></td>
   </div>
</tr>

私は次のようなものでいとこの価値を得ることができます:

$('.out').closest('div').find('.value').val();

しかし、複数の要素間でその値を同じにすることなく、各要素に対してこれらの値を相対的に割り当てる方法に迷っています...たとえば、次のようになります。

$('.out').html($('.out').closest('div').find('.value').val());

値が表示されますが、ドキュメントの最初の値(この場合は#samp1の入力からの値)が、#samp2のスパンを含むすべてのスパンに割り当てられます。

の線に沿って何かを探しているような気がします

$('.out').html($(this).closest('div').find('.value').val());

しかし、それは明らかに機能しません...
助けてくれてありがとう。

4

3 に答える 3

2

すべての要素jQuery.eachを反復処理するために使用します。.out

$('.out').each(function(){
  $(this).html($(this).closest('div').find('.value').val());
});

http://api.jquery.com/jQuery.each/

説明:オブジェクトと配列の両方をシームレスに反復するために使用できる汎用イテレーター関数。長さプロパティを持つ配列および配列のようなオブジェクト(関数のargumentsオブジェクトなど)は、0からlength-1までの数値インデックスによって繰り返されます。他のオブジェクトは、名前付きのプロパティを介して繰り返されます。

于 2012-08-28T22:55:41.603 に答える
2
$('.out').each(function(index, elem) {

    var out = $(elem);
    out.html(out.parent().parent().find('.value').val());

});
于 2012-08-28T22:55:50.687 に答える
0
$('.out').each(function(){
   $(this).html( $(this).closest('tr').find('.value').val() );
});

もう1つは、HTMLが無効であるということです。

タグ<div>の間に入れることはできません<tr>

于 2012-08-28T22:57:15.320 に答える