如何在JQuery中连接选择器?

时间:2017-07-15 15:53:00

标签: jquery concatenation

我在jQuery中连接选择器时出现问题。我有一个动态生成的表单,用于创建包含5个项目行的估算。我需要通过乘以项目成本项目数量来计算总成本。我有以下代码:

NumberOfLinesInForm  = 5; 
var id;

for (i = 0; i < NumberOfLinesInForm; i++) {

    document.write(i);

    $('#ItemCost' + 'id', '#ItemQuantity' + 'id').keyup(function () {
        var ItemQuantityItem + 'id' = parseFloat($('#ItemQuantity' + 'id').val()) || 0;
        var ItemCostItem + 'id' = parseFloat($('#ItemCost' + 'id').val()) || 0;

        $('#ItemCostTotal' + 'id').val(ItemQuantityItem * ItemCostItem);

    });

}

我正在尝试在jQuery

中实现此结果
$('#ItemCost1', '#ItemQuantity1').keyup(function () {

    var ItemQuantityItem1 = parseFloat($('#ItemQuantity1').val()) || 0;
    var ItemCostItem1 = parseFloat($('#ItemCost1').val()) || 0;

    $('#ItemCostTotal1').val(ItemQuantityItem1 * ItemCostItem1);

});

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

只需在单个字符串中编写选择器,而不是:

$('#ItemCost1', '#ItemQuantity1').keyup(function(){

你用这个:

$('#ItemCost1, #ItemQuantity1').keyup(function(){

当您使用它时,使用两个参数,第二个参数用于表示上下文,因此永远不会选择#ItemQuantity1http://api.jquery.com/jQuery/

接下来,如果要连接变量,必须不能是字符串,所以这样:

$('#ItemCost' + 'id', '#ItemQuantity' + 'id').keyup(function(){

应该是:

$('#ItemCost' + id + ', #ItemQuantity' + id).keyup(function(){

接下来,这不起作用:

var ItemQuantityItem + 'id' = ...

您正在定义一个变量,然后向其中添加一个字符串并为其分配所有值。