如果HTML元素是特定<div>
元素的子元素,我如何使用JavaScript进行检查?
if (divElement == child){
// do something...
}
编辑:谢谢你的回答。我也有关于后代的类似问题,并在Check if div is descendant of another 找到答案
答案 0 :(得分:2)
以下代码可以帮助您确定父子关系的两个要素。
function isChild (obj,parentObj){
while (obj != undefined && obj != null && obj.tagName.toUpperCase() != 'BODY'){
if (obj == parentObj){
return true;
}
obj = obj.parentNode;
}
return false;
}
然后使用isChild
调用的结果作为条件if
语句。
if(isChild(child,divElement)){
// doSomething...
}
答案 1 :(得分:1)
Client.isSubscribed(topic)
答案 2 :(得分:1)
使用节点的contains函数 - divElement.contains(child)
或如果包含的函数不存在,则使用此函数。
function contains(first, second) {
var adown = first.nodeType === 9 ? first.documentElement : first;
if (first === second) {
return true;
}
if (adown.contains) {
return adown.contains(second);
}
return first.compareDocumentPosition && first.compareDocumentPosition(second) & 16);
}
如果您需要在节点相同时返回false
function notContains(first, second) {
var adown = first.nodeType === 9 ? first.documentElement : first;
if (first === second) {
return false;
}
if (adown.contains) {
return !adown.contains(second);
}
return first.compareDocumentPosition && first.compareDocumentPosition(second) & 16) !== 16;
}
答案 3 :(得分:1)
您可以使用以下任一方法进行检查
parentEl.contains(el)
或
el.parentNode === parentEl
答案 4 :(得分:-1)
使用nodeName检查
if(elementObj.parentElement.nodeName == "DIV"){
//Your Code
}