${}

prototype.js中
function $() {
  var elements = new Array();  for (var i = 0; i < arguments.length; i++) {
    var element = arguments[i];
    if (typeof element == 'string')
      element = document.getElementById(element);    if (arguments.length == 1)
      return element;    elements.push(element);
  }  return elements;
}
在.jsp页面中调用$("id")来获取值是调这个方法吗?但是参数不匹配啊,不是调这个,我怎么找不到其他的,知道的解释下,谢谢了!

解决方案 »

  1.   

    jsp中用${}是el表达式吧
    js用法如下:
    <html>
    <body>
    <input type="text" id="test" value="testtest" />
    <script>
    function $() { 
      var elements = new Array();   for (var i = 0; i < arguments.length; i++) { 
        var element = arguments[i]; 
        if (typeof element == 'string') 
          element = document.getElementById(element);     if (arguments.length == 1) 
          return element;     elements.push(element); 
      }   return elements; 
    }
    alert($("test").value); // testtest
    </script>
    </body>
    </html>
      

  2.   

    他用的是Function()对象的arguments数组来得到参数的,如果是一个参数则返回该元素。如果是多个则返回元素数组$("id") 得到 document.getElementById("id");
    $("id","xx") 得到 数组 arr =  $("id","xx"); alert(arr[0]);
    $() 得到 空数组 alert(arr.length);
      

  3.   

    ${id}
    id必须是response或者session里面的一个attribute
      

  4.   


    --prototype 获取对象函数function $(id)
    {
       return document.getElementById(id);
    }
      

  5.   

    可以写成$("id")
    也可以写成多个参数$('ss1','ss2','ss3','ss4')
    返回的是一个数组
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html>    
    <head>    
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">       
    <title>xx</title>    
    <style type="text/css">
    div { height:20px; width:400px;  background-color:#003399; margin:5px; }
    </style>
    </head>    <body>    
    <div id='ss1'>111111</div>
    <div id='ss2'>222222</div>
    <div id='ss3'>333333</div>
    <div id='ss4'>444444</div>
    <script>
    function $() { 
      var elements = new Array(); 
      for (var i = 0; i < arguments.length; i++) { 
        var element = arguments[i]; 
        if (typeof element == 'string') 
          element = document.getElementById(element);     if (arguments.length == 1) 
          return element; 
        elements.push(element); 
      } 
      return elements; 

    window.onload =function(){
    for(var i=0;i<$('ss1','ss2','ss3','ss4').length;i++)
    {
    alert($('ss1','ss2','ss3','ss4')[i].innerHTML)
    }
    }
    </script>              
    </body>            
                
    </html>  
      

  6.   

    楼上各位说的我基本明白了,谢谢了!
    PS:JS函数调用不需要像Java那样去匹配参数? 直接按函数名调用,还是有其它的规则?
      

  7.   

    直接按函数名调用的,不会匹配参数个数,arguments对象可以获取参数个数的数组