试图将jQuery插件转换为纯javascript

时间:2015-02-16 11:50:12

标签: javascript jquery html dom

我有一个jQuery插件,我想将其转换为纯javascript,以便我可以放弃对jQuery的依赖。我坚持的插件的一部分是这个位,它返回按深度排序的DOM元素(例如,身体的孩子,然后是孙子,然后是曾孙子等等)

var first = $('body'),
output = [];
while(first.length != 0) {
  output = $.merge(output, first);
  first = first.children();
}

基本上我只需要$('body')$.mergechildren()的纯javascript版本来帮助我。

非常感谢任何帮助

1 个答案:

答案 0 :(得分:0)

好的,我自己弄清楚了,最后它很简单。

    // 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);