尝试将jQuery插件转换为纯javascript
我有一个jQuery插件,我想把它转换成纯javascript,这样我就可以去掉对jQuery的依赖。我一直关注的插件部分是这个位,它返回按深度排序的DOM元素(例如body的孩子、孙子、曾孙等等) 基本上,我只需要纯javascript版本的尝试将jQuery插件转换为纯javascript,javascript,jquery,html,dom,Javascript,Jquery,Html,Dom,我有一个jQuery插件,我想把它转换成纯javascript,这样我就可以去掉对jQuery的依赖。我一直关注的插件部分是这个位,它返回按深度排序的DOM元素(例如body的孩子、孙子、曾孙等等) 基本上,我只需要纯javascript版本的$('body'),$.merge和children()来帮助我 任何帮助都将不胜感激好的,我自己想出来的,最后很简单 // Every Element in the DOM. var allElements = document.getElem
$('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);
//DOM中的每个元素。
var allegements=document.getElementsByTagName('*'),
//所有元素的子元素按深度排序,
//身体,然后是身体的孩子,孙子,
//诸如此类。
sortedByDepth=[];
//对于每个元素
对于(var i=0;我可以给(编辑您的问题)一些示例,说明您希望如何使用这些函数(假设它们存在并工作)?按深度排序,好吧,孩子们,然后孙子们……组成了一个族谱;而不仅仅是一个排序的列表。请解释你的期望。可能重复的@Emmanueldalay op有一个重复的问题,他们昨天发布了一个更好的解释和他们想要什么的例子。
// 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);