获取已选中复选框项的parentNode

时间:2016-03-01 08:47:36

标签: javascript

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");

这很好用。但是我想要一个父项的数组。

有人可以帮助我吗,并告诉我为什么我的原始代码不起作用?

谢谢

3 个答案:

答案 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。

希望这会有所帮助