$('#form-upload :checkbox').click(function () {
var $this = $(this);
// $this will contain a reference to the checkbox
if ($this.is(':checked')) {
// the checkbox was checked
var sku_td = $('#sku').text()
var price_td = $('#price').text()
var quantity_td = $('#quantity').text()
$('#price').empty()
$('#quantity').empty()
var sku = $('<input type="hidden" name="sku[]" value="' + sku_td + '">')
var price = $('<input type="text" name="price[]" value="' + price_td + '">')
var quantity = $('<input type="text" name="quantity[]" value="' + quantity_td + '">')
$('#sku').append(sku)
$('#price').append(price)
$('#quantity').append(quantity)
} else {
// the checkbox was unchecked
// undo every you did when you clicked the event
}
});
http://jsfiddle.net/koL8xe6z/2/
我想将输入元素附加到td,并在选中的行
中添加#id有没有办法在不为每个复选框创建唯一ID的情况下执行此操作?
我也试过n-child ......
答案 0 :(得分:1)
这里的主要问题是您有多个具有相同ID的元素。 ID应该是唯一的 - 页面上只有一个元素应该有任何一个特定的ID。
在这种情况下,您应该使用类而不是ID。通过更改id =&#34; ...&#34; to class =&#34; ...&#34;在你的元素上,并使用jQuery中的parent()和siblings()遍历函数,你可以获得所需的结果:http://jsfiddle.net/wbutdz2c/
您在jsfiddle中注意到我提供的文本输入未正确填充现有值(但它们会附加在正确的位置)。要解决此问题,您需要对这些行中的选择器进行类似的更改,以获取现有值:
var sku_td = $('#sku').text()
var price_td = $('#price').text()
var quantity_td = $('#quantity').text()