<form name='regForm' action='/1.shtml' method='post'>
    <input name='1' type='text' value='' /><br>
    <input name='2' type='hidden' value='' /> <br>
    <input name='3' type='text' value='' /> <br>      
    <input name='4' type='text' value='' /> <br>
    <input name='5' type='text' value='' /> <br>
    <input name='6' type='text' value='' /> <br>     
    <input name='7' type='text' value='' /> <br>
    <input name='8' type='text' value='' /> <br>
    <input name='9' type='text' value='' /> <br>     
    <input name='10' type='text' value='' /> <br>
    <input name='11' type='text' value='' /> <br>
    <input name='12' type='text' value='' /> <br>      
    <input name='13' type='text' value='' /> <br>
    <input name='14' type='text' value='' /> <br>
    <input name='15' type='text' value='' /> <br>
 </form>
<script type='text/javascript'>
var g_elementsArr=document.forms[0].elements; 
</script> 问题:我想直接建立一个数组,不用document.forms[0].elements这样来建立数组
这个数组可以存放10个elements,代码怎么写啊?
就是想把这个代码全改成JS的,不需要用WEB,我建立那个FORM只是为了有一个存放elements的数组而已

解决方案 »

  1.   

    Array.prototype.collect = function(selector, limit) {
        var r = [];
        for (var i=0, len=this.length, limit=limit||len; i<len && r.length<limit; i++)
            if (!!selector(this[i], i, this))
                r.push(this[i]);
        return r;
    };
    Array.prototype.forEach = function(action) {
        this.collect(function(o, i, a) { action(o, i, a); }); return this;
    };
    Array.prototype.each = function(action) {
        this.collect(function(o, i, a) { a[i] = action(o, i, a); }); return this;
    };var ary = []; ary.length = 10;
    ary.each(function(item, index) { return "<input name='" + index + "' type='text' value='' />"; });
    var div = document.createElement("div");
    div.innerHTML = ary.join("<br />");// ary 里是 10 个 input
    ary = Array.prototype.collect.call(div.childNodes, function(e) { return e.nodeType==1 && e.tagName.toLowerCase() == 'input'; });
      

  2.   

    那在JS里直接docuemnt.write()不可以吗?
      

  3.   

    <script type='text/javascript'>
      var g_elementsArr=[],s='';
      for(var i=0;i<15;i++){
        s=i==1?'text':'hidden'
        g_elementsArr[i].push(s);
      }
      for(var j=0,j<g_elementsArr.length,j++){
        document.write("<input name='"+(j+1)+"' type='"+g_elementsArr[j]+"' value='' /> <br>")
      }
    </script> 
      

  4.   

    for(var j=0,j<g_elementsArr.length,j++)
    -------------->改为
    for(var j=0;j<g_elementsArr.length;j++)