2 回答

stone310
TA貢獻(xiàn)361條經(jīng)驗 獲得超191個贊
道理一樣,這是簡單版..
?function?getByClass(oParent,className){??????????????????????????????//從oParent里面搜尋className ?????var?arr=new?Array(); ?????var?obj=oParent.getElementsByTagName("*")????????????????????????//從oParent里面調(diào)出所有tag for(var?i=0;i<obj.length;i++){ ???if?(obj[i].className==className){????????????????????????????????????? ??arr.push(obj[i]) ???} } ?????return?arr; ?}

李曉健
TA貢獻(xiàn)1036條經(jīng)驗 獲得超461個贊
先獲取所有標(biāo)簽,然后循環(huán),看哪一個標(biāo)簽的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
提交
取消