javascript自定义自己的$
在多个脚本库中$是用来代替document.getElementById使用的,现在开始自定义一个自己的$,用在自己的脚本中。
1 function $(){
2 //用来存取查找到的元素
3 var elements=new Array();
4 //查找做为参数提供的所有元素
5 for(var i=0;i<arguments.length;i++){
6 var element=arguments[i];
7 //如果参数类型是字符串那假设它是一个id
8 if(typeof element=="string"){
9 element = document.getElementById(element);
10 }
11 //判断参数个数
12 if(arguments.length==1){
13 //如果参数个数是1,则立即返回该元素
14 return element;
15 }else{
16 //如果参数个数不是1,则把查找到的元素存在elements数组中
17 elements.push(element);
18 }
19 }
20 //返回查找到的元素的数组
21 return elements;
22 }
2 //用来存取查找到的元素
3 var elements=new Array();
4 //查找做为参数提供的所有元素
5 for(var i=0;i<arguments.length;i++){
6 var element=arguments[i];
7 //如果参数类型是字符串那假设它是一个id
8 if(typeof element=="string"){
9 element = document.getElementById(element);
10 }
11 //判断参数个数
12 if(arguments.length==1){
13 //如果参数个数是1,则立即返回该元素
14 return element;
15 }else{
16 //如果参数个数不是1,则把查找到的元素存在elements数组中
17 elements.push(element);
18 }
19 }
20 //返回查找到的元素的数组
21 return elements;
22 }
这个$符号可以传入一个id字符串,则返回一个元素;如果传入多个id字符串,则可以返回一个包含多个元素的数组。
1 //html
2 <div id="cont">
3 <ul>
4 <li id="one">1</li>
5 <li id="two">2</li>
6 <li id="three">3</li>
7 <li id="4">4</li>
8 <li>5</li>
9 <li>6</li>
10 <li>7</li>
11 <li>8</li>
12 </ul>
13 </div>
2 <div id="cont">
3 <ul>
4 <li id="one">1</li>
5 <li id="two">2</li>
6 <li id="three">3</li>
7 <li id="4">4</li>
8 <li>5</li>
9 <li>6</li>
10 <li>7</li>
11 <li>8</li>
12 </ul>
13 </div>
测试脚本:
1 $("cont").style.color="#f00";
2 var list = $("one","two","three");
3 list.style.color="#000";
4 for( var i=0;i<list.length;i++){
5 list[i].style.color="#000";
6 }
2 var list = $("one","two","three");
3 list.style.color="#000";
4 for( var i=0;i<list.length;i++){
5 list[i].style.color="#000";
6 }
缩写版的$定义:
1 function $(id){
2 return (id) && (typeof id === 'string' ? document.getElementById(id) : id);
3 }
2 return (id) && (typeof id === 'string' ? document.getElementById(id) : id);
3 }