0

'product-input'の値が変更されたら、'product-total'を更新します。イベントは機能していますが、「product-total」を参照できないようです。

HTMLは次のとおりです。

<div class='product'>
    <h2>Photo Prints up to 5” x 7”&lt;/h2>
    <div class='product-total'></div>
        <div class='choices'>
        <input type='text' class='raw standard product-input'  />
    </div> <!-- END Choices -->

    Standard: <input type='radio' class='quality standard' value='standard' />
    Full: <input type='radio' class='quality full' value='full' />

</div> <!-- END Product -->

そしてjQuery:

jQuery('input.product-input').change(function() {
        jQuery('div.product-total', jQuery(this).parent('div.product')).html(total);

    });
4

3 に答える 3

5

交換:

jQuery(this).parent('div.product')

と:

jQuery(this).closest('div.product')
  • parent1つ上のレベルになります。
  • closest最初の一致が見つかるまで上昇します。

完全なコード:

jQuery(this).closest('div.product').find('div.product-total').html(total);

find実際にはコンテキストセレクターが使用するものであるため、コンテキストセレクターよりも優れているためfind、最初に使用してその旅行を節約できます。

于 2012-06-04T23:41:27.060 に答える
0

わかりやすくするために回答として投稿します。これを試して:

  jQuery('input.product-input').change(function() {
     jQuery('div.product-total').html(total);
  })
于 2012-06-04T23:45:07.197 に答える
0

jqueryでこれを変更してみてください

jQuery('div.product-total'、jQuery(this).parent('div.product'))。html(total);

これに(私は$構文を使用しましたが、その使用は関数とは無関係です)

 $(this).closest('div.product')。find('product-total')。html(total);

...そして合計が入力されていることを確認します。

于 2012-06-04T23:50:56.397 に答える