根据@kennebec的回答,该逻辑的实现略为严格:
function textNodesUnder(node){ var all = []; for (node=node.firstChild;node;node=node.nextSibling){ if (node.nodeType==3) all.push(node); else all = all.concat(textNodesUnder(node)); } return all;}
但是,使用的速度更快,更紧密,更美观createTreeWalker
,因此浏览器会为您过滤掉除文本节点以外的所有内容:
function textNodesUnder(el){ var n, a=[], walk=document.createTreeWalker(el,NodeFilter.SHOW_TEXT,null,false); while(n=walk.nextNode()) a.push(n); return a;}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)