Hoe我正在尝试使用querySelectorAll来选择所有选中子复选框的父项。
基本上HTML是
<div id=""><input type="checkbox" value="test"></div>
我想选中所有选中了输入复选框的div,所以这是我的javascript代码
var list = querySelectorAll("input:checked.parentNode.getAttribute('id')");
但是当我检查list.length时它返回0,虽然已经检查了一些复选框,但是
var list = querySelectorAll("input:checked");
这很好用。但是我想要一个父项的数组。
有人可以帮助我吗,并告诉我为什么我的原始代码不起作用?
谢谢
答案 0 :(得分:1)
由于TreeView
不能用作CSS选择器,我建议你这样做
parentNode
答案 1 :(得分:0)
如果您获得.parentNode
列表并访问input:checked
,则parentNode
将有效。 CSS中未定义parentNode
。
使用此:
list= querySelectorAll('div>input:checked")
这将选择div
的所有input:checked
元素。
在此处查看更多信息: CSS Selectors Reference
答案 2 :(得分:0)
你遇到的问题是
document.querySelectorAll("input:checked");
返回一个元素数组,因此选择器
var list = querySelectorAll("input:checked.parentNode.getAttribute('id')");
无效,您正在尝试执行&#34; parentNode&#34;在一个数组
首先应该检查已检查的元素(document.querySelectorAll("input:checked");
),然后在其上执行foreach循环以获取父节点和id。
希望这会有所帮助