2 回答
stone310
TA貢獻361條經驗 獲得超191個贊
道理一樣,這是簡單版..
?function?getByClass(oParent,className){??????????????????????????????//從oParent里面搜尋className
?????var?arr=new?Array();
?????var?obj=oParent.getElementsByTagName("*")????????????????????????//從oParent里面調出所有tag
for(var?i=0;i<obj.length;i++){
???if?(obj[i].className==className){?????????????????????????????????????
??arr.push(obj[i])
???}
}
?????return?arr;
?}
李曉健
TA貢獻1036條經驗 獲得超461個贊
先獲取所有標簽,然后循環,看哪一個標簽的className屬性中包含有你要先的那個class;
var?getElementsByClassName?=?function?(searchClass,?node,tag)?{
????if(document.getElementsByClassName){
????????var?nodes?=?(node?||?document).getElementsByClassName(searchClass),result?=?[];
????????for(var?i=0?;node?=?nodes[i++];){
????????????if(tag?!==?"*"?&&?node.tagName?===?tag.toUpperCase()){
????????????????result.push(node)
????????????}else{
????????????????result.push(node)
????????????}
????????}
????????return?result
????}else{
????????node?=?node?||?document;
????????tag?=?tag?||?"*";
????????var?classes?=?searchClass.split("?"),
????????????elements?=?(tag?===?"*"?&&?node.all)??node.all?:?node.getElementsByTagName(tag),
????????????patterns?=?[],
????????????current,
????????????match;
????????var?i?=?classes.length;
????????while(--i?>=?0){
????????????patterns.push(new?RegExp("(^|\s)"?+?classes[i]?+?"(\s|$)"));
????????}
????????var?j?=?elements.length;
????????while(--j?>=?0){
????????????current?=?elements[j];
????????????match?=?false;
????????????for(var?k=0,?kl=patterns.length;?k<kl;?k++){
????????????????match?=?patterns[k].test(current.className);
????????????????if?(!match)?break;
????????????}
????????????if?(match)?result.push(current);
????????}
????????return?result;
????}
}添加回答
舉報
0/150
提交
取消
