在Javascript的函数中添加变量

时间:2016-02-25 10:18:39

标签: javascript

我正在尝试克隆一个td并将其插入另一个表添加一个新列。我实现了它,但我无法正确分配名称..我需要使用2个变量。

console.log("Store Id: "+storeId+"///Product Id:"+newId);

var cloned = $(self).parents('tr').clone();
cloned.find('td').eq(5).after('<td class=""><input type="text" name="product_order_${storeId}_${newId}" id="order_input_cat" value="" class="input-text no-changes" /></td>');  
cloned.appendTo("#products #productOnCatGrid_table tbody");

如您所见,变量是“storeId”和“newId”。问题是我无法将其添加到<input type....

的名称字段中

非常感谢,对不起我的坏英语:)

2 个答案:

答案 0 :(得分:2)

将单引号(&#39;)更改为反引号(`),这将导致这两个变量的插值。

具体做法是:

.after(`<td class=""><input type="text" name="product_order_${storeId}_${newId}" id="order_input_cat" value="" class="input-text no-changes" /></td>`);

如果您需要更多信息,请在此处查看:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals

快速演示在控制台中运行:

var x = 123
console.log(`What's the number? ${x} is the number!`)

注意:ES6及以上。检查您的浏览器compat。忽略旧浏览器上的用户。 VIVA LA ES2016!

如果您想弯曲旧浏览器,请更改:

...name="product_order_${storeId}_${newId}"...

对此:

...name="product_order_' + storeId + '_' + newId + '"...

悲伤的脸

答案 1 :(得分:1)

您可以连接字符串

            cloned.find('td')
                  .eq(5)
                  .after('<td class=""><input type="text" name="product_orden_' 
                       + storeId 
                       + '_' 
                       + newId 
                       + '" id="orden_input_cat" value="" class="input-text no-changes" /></td>');