Javascript 为什么parentNode未定义?
我正在尝试编写一个函数,该函数接受一个ID,然后遍历DOM以查看该项是否是标记的子项。这应该不会太难,但是我的Javascript 为什么parentNode未定义?,javascript,dom,Javascript,Dom,我正在尝试编写一个函数,该函数接受一个ID,然后遍历DOM以查看该项是否是标记的子项。这应该不会太难,但是我的parentNode返回为undefined?我错过了什么 这是我的代码的简化版本。。。提前谢谢 <!DOCTYPE html> <html lang="en"> <body> <div id="top"> <div id="top2"></div> <div id="top3">&l
parentNode
返回为undefined
?我错过了什么
这是我的代码的简化版本。。。提前谢谢
<!DOCTYPE html>
<html lang="en">
<body>
<div id="top">
<div id="top2"></div>
<div id="top3"></div>
<div id="top4"></div>
<div id="top5">
<div id="top5_1"></div>
</div>
<div id="top6">
<div id="top6_1">
<a href="" id="findMe">here I am...</a>
</div>
</div>
</div>
<script>
function findParent(startID, finish){
// change this from id to tag
start = document.getElementById(startID).tagName;
while (start.parentNode) {
start = start.parentNode;
if (start.tagName === finish){
console.log("true " + startID + " is a child of " + finish);
}else{
console.log("false " + startID + " ISN'T a child of " + finish);
}
}
}
findParent("findMe", "BODY");
</script>
</body>
</html>
函数findParent(开始、结束){
//将此从id更改为标记
开始=document.getElementById(startID).tagName;
while(start.parentNode){
start=start.parentNode;
如果(start.tagName==finish){
log(“true”+startID+”是“+finish”的子级);
}否则{
log(“false”+startID+”不是“+finish”的子级);
}
}
}
findParent(“findMe”、“BODY”);
问题是:
start = document.getElementById(startID).tagName;
while (start.parentNode) {
start = start.parentNode;
您试图从标记名获取父节点,该标记名是一个字符串。
删除标记名,您应该会没事的。试试start=document.getElementById(startID)代码>@AlexanderV.BstartID
是一个变量。错误在哪一行while(start.parentNode)
在这里?您可以使用$('#'+startID).parent('#'+finishID).length
查看元素是否是div的子元素
使用=
的任何特定原因?如果您将其更改为==
,会发生什么?@Саааааа他没有使用jQuery@Tom Walters,总是在Javascript中使用=
。使用==
从来没有好的理由,如果您需要类型强制,请手动执行。Doh!错过了那个!谢谢