获取DOM对象的几种扩展及简写

时间:2021-05-18

参照prototype.js中getElementsByClassName的思想,扩展出几种在DEOM操作中可经常用到的获取对象的方法,使用获取对象变得更方便、更精确了:
document.getElementsByClassName=function(className,oBox){
//适用于获取某个HTML区块内部含有某一特定className的所有HTML元素
this.d=oBox||document;
varchildren=this.d.getElementsByTagName('*')||document.all;
varelements=newArray();
for(varii=0;ii<children.length;ii++){
varchild=children[ii];
varclassNames=child.className.split('');
for(varj=0;j<classNames.length;j++){
if(classNames[j]==className){
elements.push(child);
break;
}
}
}
returnelements;
}

document.getElementsByType=function(sTypeValue,oBox){
//适用于获取某个HTML区块内部同属于某一特定type的所有HTML元素,如:input,script,link等等
this.d=oBox||document;
varchildren=this.d.getElementsByTagName('*')||document.all;
varelements=newArray();
for(varii=0;ii<children.length;ii++){
if(children[ii].type==sTypeValue){
elements.push(children[ii]);
}
}
returnelements;
}

function$(){
varelements=newArray();
for(varii=0;ii<arguments.length;ii++){
varelement=arguments[ii];
if(typeofelement=='string')
element=document.getElementById(element);
if(arguments.length==1)
returnelement;
elements.push(element);
}
returnelements;
}

$Cls=function(s,o){
returndocument.getElementsByClassName(s,o);
};

$Type=function(s,o){
returndocument.getElementsByType(s,o);
};

$Tag=function(s,o){
this.d=o||document;
returnthis.d.getElementsByTagName(s);
};

$Name=function(s){//通过name的方式只能针对整个document而言,不能为其限定范围
returndocument.getElementsByName(s);
};

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章