javascript - 在 JavaScript 中单击删除多个项目
问题描述
我想从购物车中删除项目,但我需要删除多个项目,所以我创建了一个数组 id,并使用 push 将我想要删除的项目的 id 添加到用户选中复选框时的数组中,这样我就可以处理所有内容按钮单击,但是当我单击时submit
出现错误 ids.push 不是功能,任何人都可以帮助我解决这个问题,甚至更好地实现相同的功能。下面是我的代码示例
JS FIDDLE
在下面的小提琴中,当我单击“是”按钮时,我总是得到 1 我怎么能做到,所以当我选中一个复选框时,我会得到数据 ID。
var ids = [];
$(".delCartCheck").click(function() {
id = $(this).attr('data-id');
ids = ids.push(id);
});
$('#confirm-delete').on('click', function(e) {
alert(ids);
function deletecart(ids) {
$.ajax({
url: delUrl,
type: 'POST',
data: {
id: ids
},
success: function(data) {
if (data === 'success') {
window.location = url + data;
} else {
window.location = url + data;
}
},
error: function(jqXHR, errMsg) {
// handle error
console.log(errMsg);
}
});
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<div class="pull_left checkbox-wrap itemDel" title="delete item">
<label class="check_container " style="top:40px;">
<input type="checkbox" class="delCartCheck" data-id="1">
<span class="checkmark"></span>
</label>
</div>
<div class="pull_left checkbox-wrap itemDel" title="delete item">
<label class="check_container " style="top:40px;">
<input type="checkbox" class="delCartCheck" data-id="2">
<span class="checkmark"></span>
</label>
</div>
<div class="pull_left checkbox-wrap itemDel" title="delete item">
<label class="check_container " style="top:40px;">
<input type="checkbox" class="delCartCheck" data-id="3">
<span class="checkmark"></span>
</label>
</div>
<button type="button" id='confirm-delete'>Yes</button>
<button type="button" class="">No</button>
解决方案
因为您将push
方法返回状态分配给变量ids = ids.push(id);
ids = ids.push(id);
这不是返回数组,而是返回状态 true 或 false。所以真的意味着它的1。所以ids==1
ids变成了一个普通的变量而不是一个数组。所以对于普通数组没有push
功能。
尝试这样的事情:
var ids = [];
$(".delCartCheck").click(function() {
ids = [];
$(".delCartCheck:checked").each(function(){
id = $(this).attr('data-id');
ids.push(id);
});
});
推荐阅读
- cookies - 在开玩笑测试时从 Cookies (js-cookie) 中检索数据
- python - altair 无法创建选择组合
- java - corda 实现通用保险库查询
- postgresql - 解释一个有限制和顺序的执行计划
- omnet++ - 对 SUMO、VEINS 和 OMNET++ 的怀疑
- vba - 如何创建循环以打开特定文件并保存到每个循环的特定选项卡
- c++ - 将鼠标位置从全屏映射到较小的框架
- database - 视图中具有生成的唯一值的 ID 列(全部联合)
- docker - Docker 在 Github Actions 中构建不同
- android - 在一次调用中更新多个字段的成本是多少?