Javascript 获取选中复选框项的parentNode

Javascript 获取选中复选框项的parentNode,javascript,Javascript,我正在尝试使用querySelectorAll来选择选中其子项复选框的所有父项 基本上HTML是 <div id=""><input type="checkbox" value="test"></div> 但是当我选中list.length时,它返回0,尽管有一些复选框被选中,但是 var list = querySelectorAll("input:checked"); 这个很好用。但我需要一个父项数组 谁能帮我一下,告诉我为什么我的原始代码不起作用 谢

我正在尝试使用querySelectorAll来选择选中其子项复选框的所有父项

基本上HTML是

<div id=""><input type="checkbox" value="test"></div>
但是当我选中list.length时,它返回0,尽管有一些复选框被选中,但是

var list = querySelectorAll("input:checked");
这个很好用。但我需要一个父项数组

谁能帮我一下,告诉我为什么我的原始代码不起作用


谢谢

如果您获得
输入列表:选中
并访问
父节点
,则
父节点
将工作<代码>父节点未在CSS中定义

使用以下命令:

list= querySelectorAll('div>input:checked")
这将选择所有
div
元素,并选中
input:checked

请参阅此处的更多信息:

如果您将获得
输入列表:选中
并访问
父节点
,则
.parentNode
将起作用<代码>父节点
未在CSS中定义

使用以下命令:

list= querySelectorAll('div>input:checked")
这将选择所有
div
元素,并选中
input:checked

请参阅此处的更多信息:
因为
父节点
不能用作CSS选择器,我建议您这样做

  var list = querySelectorAll("input:checked");
  var parentlist = [];
  for (var i = 0; i < list.length; i++) {
    parentlist.push(list[i].parentNode.id);
  }
var list=querySelectorAll(“输入:选中”);
var parentlist=[];
对于(变量i=0;i
因为
parentNode
不能用作CSS选择器,我建议您这样做

  var list = querySelectorAll("input:checked");
  var parentlist = [];
  for (var i = 0; i < list.length; i++) {
    parentlist.push(list[i].parentNode.id);
  }
var list=querySelectorAll(“输入:选中”);
var parentlist=[];
对于(变量i=0;i
您遇到的问题是

document.querySelectorAll("input:checked"); 
返回一个元素数组,因此选择器

var list = querySelectorAll("input:checked.parentNode.getAttribute('id')");
无效,您正试图在数组中执行“parentNode”

您应该首先获取选中的元素(
document.querySelectorAll(“input:checked”);
),然后对其执行foreach循环以获取父节点和id


希望这有帮助你的问题是

document.querySelectorAll("input:checked"); 
返回一个元素数组,因此选择器

var list = querySelectorAll("input:checked.parentNode.getAttribute('id')");
无效,您正试图在数组中执行“parentNode”

您应该首先获取选中的元素(
document.querySelectorAll(“input:checked”);
),然后对其执行foreach循环以获取父节点和id

希望这有帮助