我有一个jQuery插件,希望将其转换为纯javascript,以便可以删除对jQuery的依赖。我坚持使用的插件部分是此位,它返回按深度排序的DOM元素(例如,身体的孩子,然后是孙子,然后是曾孙等)
var first = $('body'),
output = [];
while(first.length != 0) {
output = $.merge(output, first);
first = first.children();
}
基本上,我只需要的纯javascript版本$('body')
,$.merge
并children()
在途中为我提供帮助。
任何帮助将非常感激
好的,我自己弄清楚了,最后很简单。
// Every Element in the DOM.
var allElements = document.getElementsByTagName('*'),
// All the Element's children sorted by depth,
// ie. body, then body's children, grandchildren,
// so on and so forth.
sortedByDepth = [];
// for every element
for(var i = 0; i<allElements.length; ++i) {
// grab Its children
var allChildren = allElements[i].children;
// for every grabbed child
for(var j = 0; j<allChildren.length; ++j){
// Add it to the sortedByDepth array
sortedByDepth = sortedByDepth.concat(allChildren[j]);
}
}
console.log(sortedByDepth);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句