兄台,如果我没看错,你的 boxes[k] 应该是一个<input type="checkbox"/>
那么问题来了。 input[checkbox]的默认value你肯定是没有赋值吧??
我看你这个功能应该是多选删除吧?
你可以在每一个复选框input[checkbox]绑定一个你要删除的id(就是主键之类的了,反正后端能区分,或者你能辨别的就行了)
绑定的方式有很多种了,你可以用attribute(当然也可以用别的)
给你举个例子吧
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<ul>
<li>
<input type="checkbox" name="id[]" id="1"/>
id是1
</li>
<li>
<input type="checkbox" name="id[]" id="2"/>
id是2
</li>
<li>
<input type="checkbox" name="id[]" id="3"/>
id是3
</li>
<li>
<input type="checkbox" name="id[]"id="4"/>
id是4
</li>
<li>
<input type="checkbox" name="id[]" id="5"/>
id是5
</li>
</ul>
<button>删除选中</button>
<script type="text/javascript">
var btn = document.getElementsByTagName('button')[0];
function DelSelectDemo() {
var boxes = document.getElementsByName('id[]');
var checkVal = [];
for (var key in boxes) {
if (boxes[key].checked) {
checkVal.push(boxes[key].getAttribute('id'));
}
}
alert(checkVal)
}
btn.addEventListener('click', DelSelectDemo, false);
</script>
</body>
</html>
追问这是jsp上的
![](https://video.ask-data.xyz/img.php?b=https://iknow-pic.cdn.bcebos.com/8d5494eef01f3a29f7ee53999025bc315c607c47?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto)
绑定id太麻烦,感觉也多余啊。。因为这
for (var k in boxes) {
if (boxes[k].checked)
boxes[k]我获取到的是对象,没有具体值
追答<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<ul>
<li>
<input type="checkbox" name="id[]" value="1"/>
id是1
</li>
<li>
<input type="checkbox" name="id[]" value="2"/>
id是2
</li>
<li>
<input type="checkbox" name="id[]" value="3"/>
id是3
</li>
<li>
<input type="checkbox" name="id[]" value="4"/>
id是4
</li>
<li>
<input type="checkbox" name="id[]" value="5"/>
id是5
</li>
</ul>
<button>删除选中</button>
<script type="text/javascript">
var btn = document.getElementsByTagName('button')[0];
function DelSelectDemo() {
var boxes = document.getElementsByName('id[]');
var checkVal = [];
for (var key in boxes) {
if (boxes[key].checked) {
checkVal.push(boxes[key].value);
}
}
alert(checkVal)
}
btn.addEventListener('click', DelSelectDemo, false);
</script>
</body>
</html>
兄弟你最好是在浏览器里看下渲染好的代码。可能是java遍历出来的typesAll.id 不存在
![](https://video.ask-data.xyz/img.php?b=https://iknow-pic.cdn.bcebos.com/0ff41bd5ad6eddc444da38ac30dbb6fd526633a3?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto)
追问typesAll.id存在。其实我后台已经可以批量删除了,只是页面上还是有显示值,需要刷新页面才好!
这下面是完整的这个js方法
![](https://video.ask-data.xyz/img.php?b=https://iknow-pic.cdn.bcebos.com/1ad5ad6eddc451da974e80bcbffd5266d0163228?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto)
同样的在 boxes[index] 一样也是对象,没有值呢。。。
boxes[index]这种写法会有兼容上的问题吗?