jQuery - 参考附近的元素

时间:2012-06-04 23:39:13

标签: javascript jquery html jquery-selectors

当'product-input'的值发生变化时,我希望'product-total'更新。我有活动,但我似乎无法提及'product-total'。

这是HTML:

<div class='product'>
    <h2>Photo Prints up to 5” x 7”</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);

    });

3 个答案:

答案 0 :(得分:5)

替换:

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

使用:

jQuery(this).closest('div.product')
  • parent仅提升一级。
  • closest上升,直至找到第一场比赛。

完整代码:

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

find比上下文选择器更好,因为实际上find是上下文选择器使用的,因此您可以在第一时间使用它并保存该行程。

答案 1 :(得分:0)

我发布它作为答案,所以它更清楚。 试试这个:

  jQuery('input.product-input').change(function() {
     jQuery('div.product-total').html(total);
  })

答案 2 :(得分:0)

在你的jquery尝试改变这个

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

对此(我使用了$语法,但它的用法与函数无关)

$(本).closest( 'div.product')找到( '产物计')的HTML(总);

...并确保填充总数。