JavaScript 检查元素是否为子元素
JavaScript check if element is child
如何使用 JavaScript 检查 HTML 元素是否是特定 <div>
元素的子元素?
if (divElement == child){
// do something...
}
编辑:感谢您的回答。我也有一个关于后代的类似问题,并在这里找到了答案 Check if div is descendant of another
if (element.parentNode == divElement) { ... }
使用节点的 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);
}
如果节点相同时需要return 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;
}
使用 nodeName 检查
if(elementObj.parentElement.nodeName == "DIV"){
//Your Code
}
以下代码可以帮助您判断两个元素是否存在父子关系。
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...
}
您可以使用
进行检查
parentEl.contains(el)
或
el.parentNode === parentEl
如何使用 JavaScript 检查 HTML 元素是否是特定 <div>
元素的子元素?
if (divElement == child){
// do something...
}
编辑:感谢您的回答。我也有一个关于后代的类似问题,并在这里找到了答案 Check if div is descendant of another
if (element.parentNode == divElement) { ... }
使用节点的 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);
}
如果节点相同时需要return 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;
}
使用 nodeName 检查
if(elementObj.parentElement.nodeName == "DIV"){
//Your Code
}
以下代码可以帮助您判断两个元素是否存在父子关系。
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...
}
您可以使用
进行检查parentEl.contains(el)
或
el.parentNode === parentEl