0

フィドル: http: //jsfiddle.net/MhWm5/16/

動的IDを持つ動的に生成されたテーブルの行/値がいくつかあります

<td class="control-group">
    <input name="price[418]" class="price" value="199.00">
    <span class="calcprice">I want this SPAN tag to update</span>
</td>
<td  class="control-group">
    <input name="price[424]" class="price" value="67.00">
    <span class="calcprice">I DO NOT WANT this SPAN tag to update</span>
</td>

ここにSPANを更新するように設計された単純なjQueryキーアップ関数があります。

$('.price').keyup(function() {

   var AskPrice    = $(this).val();
   var calcSpan    = ".calcprice";
   var itemCost = AskPrice * (.8);
   console.log(itemCost);  // just for giggles

   $(this).parents().find(calcSpan).text(" You will receive $" + itemCost );

});    ​  ​

ユーザーが最初の入力フィールドに入力すると、スパンは両方のテーブル行で更新されますが、これは私が望まないことです。スパンごとにクラスの名前を調整することはできますが、それは役に立たないと思います。

どんな助けも素晴らしいです。

4

3 に答える 3

1
$(this).parent().find(calcSpan).text(" You will receive $" + itemCost );

親ではなく、親

于 2012-06-25T18:58:07.773 に答える
1

siblings()これを行うには、関数を使用します。

例を参照してください: http://jsfiddle.net/MhWm5/26/

また、マークアップを変更する必要があったことにも注意してください。orにtdネストされていないタグがあったため、思ったようにレンダリングされませんでした。これが実際に問題の根本原因であった可能性があります。tabletr

于 2012-06-25T19:04:05.667 に答える
0

1 つのスパンの名前を変更し、そのスパンを更新します。

実際のデモ: http://jsfiddle.net/epinapala/MhWm5/24/

<span class="calcprice1">I want this SPAN tag to update</span>

次に、JSで

$('.price').keyup(function () {
    var AskPrice = $(this).val();
    var calcSpan = ".calcprice1";
    var itemCost = AskPrice * (.8);
    console.log(itemCost);
    $(this).parent().find(calcSpan).text(" You will receive $" + itemCost);
});
于 2012-06-25T19:00:04.387 に答える