将jQuery keyup更新隔离到一个类

时间:2012-06-25 18:55:17

标签: jquery onkeyup

小提琴: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>

我有一个简单的jQuery keyup函数,用于在这里更新SPAN:

$('.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 );

});    ​  ​

当用户键入第一个输入字段时,跨表将在两个表行中更新,这是我不想要的。我可以在每个范围内调整班级的名称,但我认为这没有帮助。

任何帮助都很棒。

3 个答案:

答案 0 :(得分:1)

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

父母,而不是父母

答案 1 :(得分:1)

我会使用siblings()函数来执行此操作。

参见示例:http://jsfiddle.net/MhWm5/26/

另请注意,我必须更改您的标记。您有td个标记没有嵌套在tabletr中,因此它没有像您认为的那样呈现。这实际上可能是您问题的根本原因。

答案 2 :(得分:0)

更改一个范围的名称,并更新该范围!

工作演示: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);
});