尝试考虑一种检查给定节点的所有祖先的有效方法,可能使用TreeWalker?
具体来说,我想查看任何nodeType是<input>
还是<textarea>
,还是contenteditable="true"
,如果任何祖先匹配,则返回true。
递归函数很好!
答案 0 :(得分:1)
您可以执行简单的迭代树爬升以获得所需的结果。
function findParentNodes(node) {
var parent = node.parentNode;
while(parent) {
if( parent.nodeName === 'INPUT' ||
parent.nodeName === 'TEXTAREA' ||
parent.getAttribute('contenteditable') === 'true') {
return true;
}
parent = parent.parentNode;
}
return false;
}