我正在尝试克隆一个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....
非常感谢,对不起我的坏英语:)
答案 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>');