javascript 函数参数原来是可以缺省的

前几天看 javaEye 时看到一个童鞋写的 getElementsByClassName 函数。代码引自:http://www.javaeye.com/topic/702854

 

 1  <! DOCTYPE html PUBLIC  " -//W3C//DTD XHTML 1.0 Transitional//EN "   " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd " >
 2  < html xmlns = " http://www.w3.org/1999/xhtml " >
 3  < head >
 4  < meta http - equiv = " Content-Type "  content = " text/html; charset=gb2312 "   />
 5  < title > 无标题文档 </ title >
 6  < script type = " text/javascript " >
 7 
 8  /* *
 9   * 根据类名获得元素
10   * 参数说明:
11   *      1、className 类名
12   *      2、tag 元素名 默认所有元素
13   *      3、elm 父元素 默认doucment
14    */
15  document.getElementsByClassName  =  function(className, tag, elm) {
16          var testClass  =   new  RegExp( " (^|\s) "   +  className  +   " (\s|$) " );
17          var tag  =  tag  ||   " * " ;
18          var elm  =  elm  ||  document;
19          var elements  =  (tag  ==   " * "   &&  elm.all) ?  elm.all : elm.getElementsByTagName(tag);
20          var returnElements  =  [];
21          var current;
22          var length  =  elements.length;
23           for (var i = 0 ; i < length; i ++ ){
24              current  =  elements[i];
25               if (testClass.test(current.className)){
26                  returnElements.push(current);
27              }
28          }
29           return  returnElements;
30      }
31 
32 
33 
34  window.onload  =  function(){
35      var divs  =  document.getElementsByClassName( " div " );
36      alert(divs.length);
37       for (var i  =   0 ; i  <  divs.length; i ++ ){
38          alert(divs[i].id);
39      }
40  }
41  </ script >
42  </ head >
43 
44  < body >
45 
46       < div  class = " div "  id = " div1 " >
47       </ div >
48       < div  class = " divvvv "  id = " div2 " >
49           < div  class = " div "  id = " div21 " >
50           </ div >
51       </ div >
52       < div  class = " div "  id = " div3 " >
53       </ div >
54 
55       </ body >
56  </ html >
57 


在这里我引用这段代码不是因为要方便自己以后调用,而是发现了一点我从没有用到的方法。

getElementsByClassName 有三个参数,但调用的时候不必传进三个参数,你只传进第一个参数就可以了,其它两个参数都是有默认值的。

原来 javascript 函数的参数是可以缺省的,这一点我倒是一直都不知道。

前一阵子这篇博文有一位博客园园友对此发表了“无言” 的评论,我不知他想表达什么意思。应该是想说我菜吧,我承认我的确很菜,学到的 javascript

知识都是很不系统的,到现在还没有真真正正看完一本 Javascript 的书。都是要用到某个知识点,才临时去了解的。至于 javascript 函数的参数是可以缺省的也是最近才知道。哪个人不是一步步走过来的?即使高手也不一定所有的知识点都了解的。但被人这样说的确很影响心情。

 

我运用到的例子:

 

 1  function  getStopSelectIDs(apmID,func)
 2  {
 3       var  returnArr  =  [];
 4       var  stopObj  =  $name( " stop[] " );
 5       for ( var  i = 0 ;i < stopObj.length;i ++ )
 6      {
 7           var  id  =  stopObj[i].getAttribute( " id " );
 8           var  arr  =  id.split( " _ " );
 9           var  attpk_guid  =  arr[ 1 ];
10           var  attpm_id    =  arr[ 2 ];
11           if  (attpk_guid !== " 2 " )
12               continue ;
13           if (attpm_id == apmID)
14              returnArr.push(id);
15      }
16       if (func !== undefined)
17          func(apmID,returnArr);
18       else
19           return  returnArr;
20  }
21 
22  getStopSelectIDs($id( " apm_id2_ "   +  num).value,
23      function ()
24     {
25          if (arguments[ 1 ] !== [])
26         {
27              for (key  in  arguments[ 1 ])
28             {
29                $id(arguments[ 1 ][key]).value  =   1 ;     
30             }
31         } else {
32             $id( " stop_3_11_ "   +  num).value  =   1 ;    
33         }
34     }
35  );
36 
37 


 

转载于:https://www.cnblogs.com/chy1000/archive/2010/07/19/1780473.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值