如何判断一个元素是否是JavaScript中另一个元素的子元素(无jQuery)?

如何判断一个元素是否是JavaScript中另一个元素的子元素(无jQuery)?,javascript,html,dom,Javascript,Html,Dom,如果我有2个HTML元素,我怎么能轻易地判断1是否是另一个的孩子 var parent = document.getElementById('shapes'); var child = document.getElementById('star'); 像child.getParentElement()这样的元素上是否有任何类型的函数可以与像child.getParentElement()==parent这样的元素进行比较 我理解parent.children返回了一个子数组,因此我想我可以使用

如果我有2个HTML元素,我怎么能轻易地判断1是否是另一个的孩子

var parent = document.getElementById('shapes');
var child = document.getElementById('star');
child.getParentElement()
这样的元素上是否有任何类型的函数可以与像
child.getParentElement()==parent
这样的元素进行比较

我理解
parent.children
返回了一个子数组,因此我想我可以使用for循环,并将每个子数组与
child
进行比较。是否有一种更简单的单功能方法来实现这一点


没有jQuery或其他库。

检查子节点的
.parentNode

if (child.parentNode === parent) {...

元素中有
parentNode
属性,因此您可以执行以下操作:

var parent = document.getElementById('shapes');
var child = document.getElementById('star');

var isChild = false;
var current = child;
while(current = current.parentNode)
{
    if(current == parent)
        isChild = true;
}

如果
parent
元素位于DOM中
child
元素的某个位置,则返回true-不仅当它直接是其父元素时。

您还可以使用
child.parentElement
获取父元素

我还想指出,您可以在
chromewebconsole


如果只需要来自父元素的直接子元素,请查看以下示例:


父母亲
小孩
N-儿童1
N-儿童2
JavaScript:

document.getElementById(“btn操作”).addEventListener(“单击”,函数(e){
var div1=document.getElementById(“div1”),
div2=document.getElementById(“div2”),
nchild1=document.getElementById(“div3-1”),
nchild2=document.getElementById(“div3-2”);
document.getElementById(“结果”).innerHTML=
“
div2是div1的子级?-”+fnIsChild(div1,div2)+ “
div3-1是div1的子版本?-”+fnIsChild(div1,nchild1)+ “
div3-2是div1的子版本?-”+fnIsChild(div1,nchild1); }); 函数fnIsChild(parentElem、childElem){ var childNodes=parentElem.childNodes, max=childNodes.length, N 对于(n=0;n
这正是我要找的:),但我不会在10分钟内将此标记为已回答。。。