javascript DOM 遍历
以下一系列的辅助函数可以帮助您,他们能取代标准的previousSibling,nextSibling,firstChild,lastChild,parentNode;
JavaScript代码
- //————————DOM?遍历,如果元素没找到则返回null———————–// ??
- ????//—查找相关元素的前一个兄弟元素—// ??
- ????function?prev(elem){ ??
- ????????do{ ??
- ????????????elem=elem.previousSibling; ??
- ????????}while(elem&&elem.nodeType!=1); ??
- ????????return?elem; ??
- ????} ??
- ????//—查找相关元素的下一个兄弟元素—// ??
- ????function?next(elem){ ??
- ????????do{ ??
- ????????????elem=elem.nextSibling; ??
- ????????}while(elem&&elem.nodeType!=1); ??
- ????????return?elem; ??
- ????} ??
- ????//—查找第一个子元素的函数—// ??
- ????function?first(elem){ ??
- ????????elem=elem.firstChild; ??
- ????????return?elem?&&?elem.nodeType!=1??next(elem):elem; ??
- ????} ??
- ????//—查找最后一个子元素的函数—// ??
- ????function?last(elem){ ??
- ????????elem=elem.lastChild; ??
- ????????return?elem?&&?elem.nodeType!=1??prev(elem):elem; ??
- ????} ??
- ????//—查找父级元素的函数—// ??
- ????//num是父级元素的级次,parent(elem,2)等价于parent(parent(elem)) ??
- ????function?parent(elem,num){ ??
- ????????num=num||1; ??
- ????????for(var?i=0;?i<num;?i++){ ??
- ????????????if(elem!=null){ ??
- ????????????????elem=elem.parentNode; ??
- ????????????} ??
- ????????} ??
- ????????return?elem; ??
- ????}??
调用案例:first(document.getElementById(“everywhere”)).style.backgroundColor=”#ff0000″;
以上是《精通Javascript》提供
最新评论
写的挺好的
有没有兴趣翻译 impatient js? https://exploringjs.com/impatient-js/index.html
Flexbox playground is so great!
感谢总结。
awesome!
这个好像很早就看到类似的文章了
比其他的教程好太多了
柯理化讲的好模糊…没懂