我正在测试我在这里提供的第二个解决方案,用于检查和记录已经检查过的每个复选框。第一个解决方案就像一个魅力,但第二个更有效的解决方案甚至没有运行。
for (x in aL.results) {
aLIds.push(aL.results[x].listing_id);
aLTitles.push(aL.results[x].title);
aLQuantities.push(aL.results[x].quantity);
aLDescs.push(aL.results[x].description);
aLTaxPaths.push(aL.results[x].Tax_path);
aLTaxIds.push(aL.results[x].Tax_id);
aLTags.push(aL.results[x].tags);
aLUrls.push(aL.results[x].url);
aLPrices.push(aL.results[x].price);
aLViews.push(aL.results[x].views);
aLHearts.push(aL.results[x].num_favorers);
$('#tblListings').append(
'<tr>' + '<td><input type="checkbox" name="updateListings[]" value=' + x + ' ></td>' + '<td>' + aLQuantities[x] + '</td>' + '<td>' + aLTitles[x] + '</td>' + '<td>' + aLPrices[x] + '</td>' + '<td>' + aLViews[x] + '</td>' + '<td>' + aLHearts[x] + '</td>' + '</tr>'
);
}
$('input:checkbox').change(function() {
alert('ah');
var uLIndex = $('input:checkbox:checked').map(function() {
return this.value;
}).get();
console.log(uLIndex);
});
答案 0 :(得分:0)
对于动态创建元素,我们无法直接绑定事件执行类似这样的操作或 live 函数,并且此函数在1.9版本中被删除,因此请确保您使用的是什么版本的jquery或您可以通过jquery官方网站找到许多方法
$('body').on("change","input:checkbox",function() {
alert('ah');
var uLIndex = $('input:checkbox:checked').map(function() {
return this.value;
}).get();
console.log(uLIndex);
});
<强>更新强>
将复选框添加到复选框检查
$('#tblListings').append(
'<tr>' + '<td><input class="check" type="checkbox" name="updateListings[]" value=' + x + ' ></td>' + '<td>' + aLQuantities[x] + '</td>' + '<td>' + aLTitles[x] + '</td>' + '<td>' + aLPrices[x] + '</td>' + '<td>' + aLViews[x] + '</td>' + '<td>' + aLHearts[x] + '</td>' + '</tr>'
);
然后将所有复选框上的事件绑定到类名检查,如下所示。
$('body').on("change",".check",function() {
alert('ah');
var uLIndex = $('input:checkbox:checked').map(function() {
return this.value;
}).get();
console.log(uLIndex);
});