补充一下
因为table不能getElementsByName,所以只能用getElementsByTagName,但问题是不知道页面的tag是input还是select,所以也无法获取

解决方案 »

  1.   


    你都用了getElementsByTagName还不知道tag名?
      

  2.   

    对,不知道是select还是input,因为这个是动态变化的
      

  3.   


     function jisuan()
            {
      
             var a=document.getElementsByName("a");
            //判断是否是input
              if( a[0].rows[0].cells[0].firstChild.nodeName=="INPUT")
              {
                var input11=a[0].rows[0].cells[0].firstChild.value;
              }
              //判断是否是select
              if( a[0].rows[0].cells[1].firstChild.nodeName=="SELECT")
              {
                var i=a[0].rows[0].cells[1].firstChild.selectedIndex;
              var input12= a[0].rows[0].cells[1].firstChild.options[i].innerText;
         
              }
              
            }
     <table id="a">
                    <tr>
                        <td>
                            <input id="Text1" type="text" />
                        </td>
                        <td>
                            <select id="Select1" style="width: 173px" onclick="jisuan();">
                              <option >1</option>
                                <option>2</option>
                            </select>
                        </td>
                    </tr>
                </table>
      

  4.   

    ??
    为什么Table不能getElementsByName,解释下!不是都有ID吗!为什么不能?即使用getElementsByTagName也可以获取Table数组
    下面的未经过测试:有错误自己修改!var a=new arry;
    a=document.getElementsByTagName("table")
    for(var i=0;i<a.lenth;i++)
    {
    //判断是否是你要的TAble
      if(a[i].name=="a")
    }
      

  5.   

    谢谢楼上
    但问题的关键在document.getElementsByName("a");
    因为我的一个document里有几个table,每个table的内容都不同,所以不能用document.getElementsByName("a"),如果能有table.getElementsByName("a")方法那就好了,现在是table不支持这个方法。
      

  6.   


    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
     <HEAD>
      <TITLE> New Document </TITLE>
      <script>
    function add(){
    var o11 = document.getElementsByName('input11');
    var o12 = document.getElementsByName('input12');
    var o13 = document.getElementsByName('input13');
    var num = parseInt(o11.length)+ parseInt(o12.length)+ parseInt(o13.length);
    var sum = 0;
    var ovalue1 = 0;
    for(var i=0;i<o11.length;i++){
    if(o11[i].type=="text"&&o11[i].value!=""){
    ovalue1 =parseInt(ovalue1)+parseInt(o11[i].value);
    }else if(o11[i].type!="text"){
    ovalue1 =parseInt(ovalue1)+parseInt(o11[i].options[o11[i].selectedIndex].text);
    }
    }
    alert(ovalue1);//差不多了 没时间了  你自己扩展}
      </script>
     </HEAD> <BODY>
      <table id='a'> 
    <tr> <td> <input name='input11'/> </td> <td> <select name='input11'><option value="11">11</option><option value="22">22</option> </td> </tr> 
    <tr> <td> <input name='input21'/> </td> <td> <input name='input22'/> <td> </tr> 
    <tr> <td> <input name='input31'/> </td> <td> <input name='input32'/> </td> </tr> 
    </table> <input type="button" value="add" onclick="add()">
     </BODY>
    </HTML>
      

  7.   

    获得对象然后用obj.value即可。
      

  8.   

    看来你不理解document.getElementsByName("a"); 
    它的作用就是取出所有name一样的table!    function jisuan()
            {
      
             var a=document.getElementsByName("a");
             if(a.length>0)
             {
                    for(var j=0;j<a.length;j++)
                    {
                     //判断是否是input
                      if( a[j].rows[0].cells[0].firstChild.nodeName=="INPUT")
                      {
                        var input11=a[j].rows[0].cells[0].firstChild.value;
                      }
                      //判断是否是select
                      if( a[j].rows[0].cells[1].firstChild.nodeName=="SELECT")
                      {
                        var i=a[j].rows[0].cells[1].firstChild.selectedIndex;
                        var input12= a[j].rows[0].cells[1].firstChild.options[i].innerText;
                 
                      }
                  }
              }
              
           }<html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>Untitled Page</title>
    <script type="text/javascript" src=JScript.js></script>
    </head>
    <body >
        <form id="form1" runat="server">
            <div>
                <table id="a">
                    <tr>
                        <td>
                            <input id="Text1" type="text" />
                        </td>
                        <td>
                            <select id="Select1" style="width: 173px" onclick="jisuan();">
                              <option >1</option>
                                <option>2</option>
                            </select>
                        </td>
                    </tr>
                </table>
                   <table id="a">
                    <tr>
                        <td>
                            <input id="Text2" type="text" />
                        </td>
                        <td>
                            <select id="Select2" style="width: 173px" onclick="jisuan();">
                              <option >1</option>
                                <option>2</option>
                            </select>
                        </td>
                    </tr>
                </table>
            </div>
        </form>
    </body>
    </html>
      

  9.   

    getElementsByName 取出的对象是数组!
    楼主最好了解一些DOM!
      

  10.   

    var a=new arry;
    a=document.getElementsByTagName("table")
    for(var i=0;i<a.lenth;i++)
    {
    //判断是否是你要的TAble
      if(a[i].name=="a")
      
    }a[i].getElementsByName('input11');这不能通过啊,提示对象不支持此属性和方法。
      

  11.   


    table根本不支持getElementsByName方法<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
     <HEAD>
      <TITLE> New Document </TITLE>
      <script>    function test(){
          var obj= document.getElementsByName('a');      var obj1= obj.getElementsByName('input1'); }
      </script>
     </HEAD>
     <BODY>
      <table name='a'> 
    <tr> <td> <input name='input1'/> </td> <td> <input name='input2'/> <td> </tr> 
    <tr> <td> <input name='input1'/> </td> <td> <input name='input2'/> </td> </tr> 
    </table> <input type="button" value="test" onclick="test()">
     </BODY>
    </HTML>上面这段代码在你的IE中能通过吗
      

  12.   

    你把 <table name='a'>改成ID不就可以了,或者添加一个一样名字的ID=“a”
      

  13.   

    html中name和id的区别 表单元素(form  input  textarea  select)与框架元素(iframe  frame)用  name  
    这些元素都与表单(框架元素作用于form的target)提交有关,  在表单的接收页面只  
    接收有name的元素,  赋ID的元素通过表单是接收不到值的.  
     
    当然上述元素也可以赋ID值,  赋ID值的时候引用这些元素的方法就要变一下了.  
    赋  name:  document.formName.inputName        document.frames("frameName")  
    赋  ID    :  document.all.inputID                      document.all.frameID  只能赋ID不能赋name的元素:(除去与表单相关的元素都只能赋ID)  
    body  li  a  table  tr  td  th  p  div  span  pre  dl  dt  dd  font  b  等等
      

  14.   

    我的目的是要找到一个document里其中一个table所有名字相同的元素,这些元素虽然名字相同,但类型可能不同,有的是input,有的是select,动态变化的。
    那么我用table.getElementsByTagname不行,用table.getElementsByName也不行,不支持此方法。
    如果在动态生成时给每个元素赋一个唯一的ID,那么在动态生成时还得记录这些ID,然后才能通过getElementByid的方法找到这些元素。
    回楼上:
    你把  <table name='a'>改成ID不就可以了,或者添加一个一样名字的ID=“a”
    改为ID,table.getElementsByName方法照样不行。
      

  15.   

    获得对象然后用obj.value即可。
      

  16.   

    看了半天好像很复杂的样子,你不就是想得到input或者是select的值吗?如果你select设置了option的value,那这两个控件得值的方法不都是.value吗?
    另外,没有什么table支不支持getElementsByName的,都支持,只要你给他一个域。一般用的document是全局的。向上面人说的,先用getElementById得到这个table的obj,在用obj.getElementsByName就ok了!
    简单点,简单点!
      

  17.   

    我这里table也不支持getElementsByName,返回一个对象,但是长度始终是0
      

  18.   

    <html>
    <head>
    <title></title>
    </head>
    <body>
    <table id='a'> 
    <tr> <td> <input name='input11' /> </td> <td> <input name='input12'/> </td> </tr> 
    <tr> <td> <input name='input21' /> </td> <td> <input name='input22'/> <td> </tr> 
    <tr> <td> <input name='input31'/> </td> <td> <input name='input32'/> </td> </tr> 
    </table>  <table id='a'> 
    <tr> <td> <input name='input11'/> <td> <select name='input12'/> </td> </tr> 
    <tr> <td> <input name='input21'/> <td> <select name='input22'/> </td> </tr> 
    <tr> <td> <input name='input31'/> <td> <select name='input32'/> </td> </tr> 
    </table>  <table id='a'> 
    <tr> <td> <input name='input11'> </td> <td> <select name='input12'> </td> </tr> 
    <tr> <td> <input name='input21'> </td> <td> <input name='input22'> </td> </tr> 
    <tr> <td> <input name='input31'> </td> <td> <input name='input32'> </td> </tr> 
    </table> 
    <!--计算-->
    <script>
    function sum()
    {
    //input11*input12+input21*input22+input31*input32
    var cnt11=document.getElementsByName("input11").length;
    var cnt12=document.getElementsByName("input12").length;
    var cnt21=document.getElementsByName("input21").length;
    var cnt22=document.getElementsByName("input22").length;
    var cnt31=document.getElementsByName("input31").length;
    var cnt32=document.getElementsByName("input32").length; var sum=cnt11*cnt12*cnt21*cnt22*cnt31*cnt32;
    alert('结果'+sum);
    } sum();
    </script>
    </body>
    </html>