大家帮忙看下注释的地方(方便大家查看)有什么问题,用eval函数可以实现,但是不知道这样为什么不对<script type=text/javascript name=script1>
function checkall()
{
  var owin=window.open("","_blank");
  owin.document.write("<table border=1 width=400>"+
                      "<caption>all数组中一共有"+document.all.length+
"个元素</caption><tr>");
  for(var i=0;i<document.all.length;i++)
  {
      owin.document.write("<td>"+document.all[i].tagName+"</td>");
   }
  owin.document.writeln("</tr></table>");
 /*从这里开始
var objnames=["links","forms","scripts","images"];
  for(var j=0;j<objnames.length;j++)
   {
       owin.document.write("<table border=1 width=400>"+
                       "<caption>"+objnames[j]+                         "数组中一共有"+document.objnames[j].length+"个元素</caption><tr>");
       for(var i=0;i<document.objnames[j].length;i++)
       {
           owin.document.write("<td>"+document.objnames[j][i].name+"</td>");
        }
    owin.document.writeln("</tr></table>");
   }
这里结束*/ 
   owin.document.close();
  
}
</script>
<body onload="checkall()">
<a href="#1" name=href1>to p1</a>
<a href="#2" name=href2 >to p2</a>
<img src="sample.jpg" name=img1>
<form name="form1">
<input type=submit >
</form>
<a name="1">paragraph1
<form name="form2">
<input type=text name="user"><br/>
<input type=submit>
</form>
<a name="2">paragraph2
</body>

解决方案 »

  1.   

    var objnames=["links","forms","scripts","images"]; 
      for(var j=0;j <objnames.length;j++) 
       { 
           owin.document.write(" <table border=1 width=400>"+ 
                           " <caption>"+objnames[j]+                         "数组中一共有"+document.objnames[j].length+"个元素 </caption> <tr>"); 
           for(var i=0;i <document.objnames[j].length;i++) 
           { 
               owin.document.write(" <td>"+document.objnames[j][i].name+" </td>"); 
            } 
        owin.document.writeln(" </tr> </table>"); 
       } 
    这段程序执行不出来
      

  2.   

    看看吧:function $(o) {
     return document.getElementsByTagName(o);
    }
    function show() {
    var owin=window.open("","_blank"); 
    var objnames=["a","form","script","img"];  
      for(var j=0;j  <objnames.length;j++)  
       {  
           owin.document.write("  <table border=1 width=400>"+  
                           "  <caption>"+objnames[j]+                         "数组中一共有"+$(objnames[j]).length+"个元素  </caption>  <tr>");  
           for(var i=0;i  <$(objnames[j]).length;i++)  
           {  
               owin.document.write("  <td>"+$(objnames[j])[i].name+"  </td>");  
            }  
        owin.document.writeln("  </tr>  </table>");  
       }  }window.onload=show;
      

  3.   

    o 不好意思 照你原样写:function $(o) {
     return document.getElementsByTagName(o);
    }
    function checkall() 

      var owin=window.open("","_blank"); 
      owin.document.write(" <table border=1 width=400>"+ 
                          " <caption>all数组中一共有"+document.all.length+ 
    "个元素 </caption> <tr>"); 
      for(var i=0;i <document.all.length;i++) 
      { 
          owin.document.write(" <td>"+document.all[i].tagName+" </td>"); 
       } 
      owin.document.writeln(" </tr> </table>"); 
     /*从这里开始 
    var objnames=["a","form","script","img"];  
      for(var j=0;j  <objnames.length;j++)  
       {  
           owin.document.write("  <table border=1 width=400>"+  
                           "  <caption>"+objnames[j]+                         "数组中一共有"+$(objnames[j]).length+"个元素  </caption>  <tr>");  
           for(var i=0;i  <$(objnames[j]).length;i++)  
           {  
               owin.document.write("  <td>"+$(objnames[j])[i].name+"  </td>");  
            }  
        owin.document.writeln("  </tr>  </table>");  
       }  这里结束*/ 
      
       owin.document.close(); 
       

      

  4.   

    document.objnames 换成objnames,objnames定义在函数中window.objnames为undefined当然有错