查找DOM元素的方法集合(searchElement.js)

来源:互联网 发布:php is numeric float 编辑:程序博客网 时间:2024/05/16 17:36

/**
 * @author huangbo
 */
//查找相关元素的前一个兄弟元素的函数
function prev(elem){
    do{
      elem = elem.previousSibling;
    }while(elem && elem.nodeType != 1);
}

//查找相关元素的下一个兄弟元素的函数
function next(elem){
    do{
  elem = elem.nextSibling;
    }while(elem && elem.nodeType!=1);
};

//查找元素第一个子元素的函数
function first(elem){
    elem = elem.fristChild;
    return elem && elem.nodeType!=1?next(elem):elem;
}

//查找元素最后一个子元素的函数
function last(elem){
    elem = elem.lastChild;
    return elem && elem.nodeType!=1?prev(elem):elem;
}

//查找元素父元素的函数
function parent(elem,num){
    num = num || 1;
    for(var i=0;i<num;i++){
        if(elem !=null){
            elem = elem.parentNode;
        }
        return elem;
    }
}

//根据id查找
function  id(id){
   return document.getElementById(id);
}
//根据名字查找,如果没有传elem,就从整个文档中取
function tag(name,elem)
{
  return (elem||document).getElementsByTagName(name);
}

//找出全部有指定类值的元素的函数
function hasClass(name,type){
 var r = [];
 var re = new RegExp("(^|//s)"+name+"(//s|$)");
 var e = document.getElementsByTagName(type || "*");
 for(var j=0;j<e.length;j++){
  if(re.test(e[j])){
   r.push(e[j]);
  }
 }
 return r;
}
//如下使用,所有类值为test的元素
hasClass("test");
//所有类值test的li元素
hasClass("test","li");
//第一个元素
hasClass("test","li")[0];

 

//获取元素及其子元素文本的函数
function text(e){
    var t = "";
    e = e.childNodes || e;
    for(var j=0;j<e.length;j++){
         t += e[j].nodeType != 1 ? e[j].nodeValue :text(e[j].childNodes);
 }
}