经常在面试题中看到dom层次遍历,自己尝试着用underscore的式的方法写了个,试着还可以用。
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title></title></head>
<body>
<div id="par">
<div id="first">
<p id="first1">
<span id="first11"><span id="first111"></span></span>
</p>
</div>
<div id="two">
<p id="two1">
<span id="two11"></span>
</p>
<p id="two2"></p>
</div>
<div id="three">
<p id="three1">
<span id="three11"></span>
</p>
</div>
</div>
<script type="text/javascript">
var par=document.getElementById('par');
(function (){
var _=function(){};
this._=_;
function searchN(e,n){
var arr=[],
eles,
level=0;
if(!n){
n=1;}
if(e && e.nodeType==1){
arr.push(e);}
else {
return null;}
while(arr.length!=0){
if(n==level){return arr;}
len=arr.length;
while(len--){
e=arr.shift();
eles=e.childNodes;
for (var i = 0,length=eles.length; i < length; i++) {
if(eles[i] && eles[i].nodeType==1){arr.push(eles[i]);}
};
}
level++;
}
return false;
}
_.searchN=searchN;
}).call(this);
console.log(_.searchN(par,2));
</script>
</body>
</html>