贴部分代码,以后会用到~
最近一直在用原生态js,虽然有些不方便,但是觉得用着用着就习惯了~~
仿jq class选择器
// 用数组模拟jq的class选择器
function getClassName(ParentId,NewClassName){
var AllClassElem = ParentId.getElementsByTagName("*");
var AllClass = [];
var i=0;
for(var i=0; i<AllClassElem.length; i++){
if(AllClassElem[i].className==NewClassName){
AllClass.push(AllClassElem[i]);
}
}
return AllClass;
}
用法:
var PElementId=document.getElementById("bar");
var buttons = getClassName(PElementId,"sco");
取id=“bar”下class=“sco”的元素;
仿jq addClass方法
HTMLElement.prototype.addClass=function(className){
var c=this.className;
if(c){
var arr= c.split(" ");
for(var i=0;i<arr.length;i++){
if(arr[i]==className){
return;
}
}
this.className=c+" "+className;
}else{
this.className=className;
}
}
js仿jq sibling方法
function siblings(o){//参数o就是想取谁的兄弟节点,就把那个元素传进去
var a=[];//定义一个数组,用来存o的兄弟元素
var p=o.previousSibling;
while(p){//先取o的哥哥们 判断有没有上一个哥哥元素,如果有则往下执行 p表示previousSibling
if(p.nodeType===1){
a.push(p);
}
p=p.previousSibling//最后把上一个节点赋给p
}
a.reverse()//把顺序反转一下 这样元素的顺序就是按先后的了
var n=o.nextSibling;//再取o的弟弟
while(n){//判断有没有下一个弟弟结点 n是nextSibling的意思
if(n.nodeType===1){
a.push(n);
}
n=n.nextSibling;
}
//for(var i=0;i<a.length;i++){
// a[i].style.fontSize="12px";
// a[i].style.background="#fff";
// }
return a//最后按从老大到老小的顺序,把这一组元素返回
}