Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/91.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在此函数中获取父id?_Javascript_Html_Dom - Fatal编程技术网

Javascript 如何在此函数中获取父id?

Javascript 如何在此函数中获取父id?,javascript,html,dom,Javascript,Html,Dom,附加的代码正确返回复选框的id和值。 我需要获取封闭div的id,以便将display属性设置为hidden <!DOCTYPE html> <html> <head> </head> <body> <div id="wrapper"> <form> <div id="boatdiv1"><input type="checkbox" name="

附加的代码正确返回复选框的id和值。 我需要获取封闭div的id,以便将display属性设置为hidden

<!DOCTYPE html>

<html>
<head>
</head>
<body>
    <div id="wrapper">
        <form>
            <div id="boatdiv1"><input type="checkbox" name="cb" id="boat1" value="123" onclick='doClick();'><label for='boat1'>boat1</label><br></div>
            <div id="boatdiv2"><input type="checkbox" name="cb" id="boat2" value="456" onclick='doClick();' onclick='doClick();'><label for='boat2'>boat2</label><br></div>
            <div id="boatdiv3"><input type="checkbox" name="cb" id="boat3" value="789" onclick='doClick();'><label for='boat3'>boat3</label><br></div>
        </form>
    </div>


</body>
<script>
    function doClick() {
        var checkedValue = null; 
        var inputElements = document.getElementsByName('cb');
        for(var i=0; inputElements[i]; ++i){
              if(inputElements[i].checked){
                   checkedValue = inputElements[i].value;
                   checkedID = inputElements[i].id;
                   console.log('checked id = '+checkedID);
                   console.log('value = '+checkedValue);
                   break;
              }
        }
              ParentID = checkedID.offsetParent;
              console.log(ParentID.id);
    }
</script>
</html>
我希望ParentID会返回id。相反,我得到一个错误TypeError:undefined不是一个计算“ParentID.id”的对象。

使用parentNode-还要注意,checkedID是一个字符串,因此它没有父对象。使用getElementById获取选中的输入:

ParentID = document.getElementById(checkedID).parentNode;
console.log(ParentID.id);

您需要删除OneEvent属性并改用OneEvent属性或事件侦听器:

这基本上就是隐藏clicked element event.target的父元素所需的内容:

演示 在演示中对细节进行了评论

//参考表格 var form=document.forms[0]; //将表单注册到更改事件 form.onchange=隐藏; /* 当用户取消选中/选中复选框时调用 event.target始终是当前单击/更改的标记 获取更改的父项并将其设置为display:none */ 函数隐藏{ var变化=e.目标; changed.parentElement.style.display='none'; console.log`Checkbox:${changed.id}:${changed.value}`; console.log`Parent:${changed.parentElement.id}`; } 船1 船2 船3
将id放入表单标签并检查
event.target.parentElement.style.display = 'none';