zoukankan      html  css  js  c++  java
  • 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 


  • 相关阅读:
    F. Journey
    D. Divide
    C. Counting Pair
    A. A Big Dinner
    E
    D -Sale
    第十三课 历史记录画笔工具
    第十二课 文字工具
    第十一课 模糊工具、海绵工具、仿制图章工具
    第十课 切片工具 修复画笔工具 修补工具 颜色替换工具
  • 原文地址:https://www.cnblogs.com/chy1000/p/1780473.html
Copyright © 2011-2022 走看看