我有一个复选框列表,在检查时我应该得到它们并且应该检索它们的属性值。
res.querySelectorAll('.node:checked')
这给了我一个已检查输入元素的数组,我可以使用for循环遍历这个元素数组并执行
getAttribute('data-keyvalue')
每个。但是有可能只将它们放在一行,
querySelectorAll
答案 0 :(得分:3)
您可以使用Array#from
将NodeList
querySelectorAll
的输出转换为数组,然后使用array#map
获取已选中复选框的data-keyvalue
属性
var checkboxAttributes = Array.from(document
.querySelectorAll('.node:checked'))
.map(input => input.getAttribute('data-keyvalue'));
console.log(checkboxAttributes);

<input class="node" data-keyvalue="7" type="checkbox" checked>
<input class="node" data-keyvalue="8" type="checkbox">
<input class="node" data-keyvalue="9" type="checkbox" checked>
<input class="node" data-keyvalue="10" type="checkbox" checked>
<input class="node" data-keyvalue="11" type="checkbox">
&#13;
答案 1 :(得分:1)
检查console
,它将记录一组已检查的数据属性值。
var chk = Array.prototype.slice.call(document.querySelectorAll('.node:checked')).map(function(node) {
return node.getAttribute('data-keyvalue');
})
console.log(chk);
&#13;
<input type="checkbox" class="node" checked data-keyvalue="1" />
<input type="checkbox" class="node" checked data-keyvalue="2" />
<input type="checkbox" class="node" checked data-keyvalue="3" />
<input type="checkbox" class="node" data-keyvalue="4" />
<input type="checkbox" class="node" data-keyvalue="5" />
<input type="checkbox" class="node" checked data-keyvalue="6" />
<input type="checkbox" class="node" checked data-keyvalue="7" />
&#13;
答案 2 :(得分:0)
我遇到了同样的问题,最后我的所有搜索都达到了,你必须一次处理一个并自己构建数组或字符串。尝试创建一个为您执行此操作的功能,并且只要您需要全部功能,该功能将以您需要的格式为您提供数据。