页面代码为:
<tbody id="tbody">
            <tr>
                <th>序号</th>
                <th>名称</th>
                <th>单价</th>
                <th>重量</th>
                <th>价格</th>
            </tr>
            <tr class="product">
                <th>1</th>
                <td></td>
                <td></td>
                <td></td>
                <td></td>    
            </tr>
</tbody>页面tbody 有多个tr,在实现了可实时编辑td的值后,在js中怎么取得各个td中的值?
var tr= $("#tbody tr");
var len= tr.length;
//alert(len);
for(var i = 1; i < len; i++){
        //var price = $("#price" + i).val();//通过给各个td设置一个id,但是取得各个id的时候怎么表示,这个写法有问题     
        //var price = tr.eq(i).children().eq(2).val();//这个写法也有问题   
        var price = tr.eq(i).children("td").eq(1).val();//这个写法也有问题
        alert(price);//显示的是空值
}
请高手指点下!
谢谢!

解决方案 »

  1.   

    这么麻烦用最原始的js解决就可以啦
    var tbl=document.getElementById('table id');
    for(var i=0;i<tbl.rows.length;i++)
    {
      for(var j=0;i<tbl.rows[i].cells.length;j++)
      {
        alert(tbl.rows[i].cells[j].innerHTML);
      }
    }
      

  2.   


    <script src="js/jquery-1.3.2.js" type="text/javascript"> </script> 
    <script type="text/javascript"> 
    window.onload=function(){
      $(".product td:nth-child(4)").each(function(){
         alert($(this).html())
      })
    }
    </script>
    <table>
    <tbody id="tbody"> 
                <tr> 
                    <th>序号 </th> 
                    <th>名称 </th> 
                    <th>单价 </th> 
                    <th>重量 </th> 
                    <th>价格 </th> 
                </tr>
                <tr class="product"> 
                    <th>1</th> 
                    <td>xxx</td> 
                    <td>1.2</td> 
                    <td>1.3</td> 
                    <td>1.4</td>    
                </tr> 
                <tr class="product"> 
                    <th>2</th> 
                    <td>xxx</td> 
                    <td>2.2</td> 
                    <td>2.3</td> 
                    <td>2.4</td>    
                </tr> 
    </tbody> 
    </table>
      

  3.   

    $("tbody td").each(function(){
      alert($(this).html());
    });
      

  4.   

    $("#tbody .product td").each(function(){
    alert($(this).html());
    })
    试试看,
      

  5.   

    我试了直接给页面写上数据,那可以直接取到,但是加了可以编辑修改页面的数据的代码,就取不到数据了,看看是什么问题?
    $("tbody td").click(function(){
    var obj = $(this);
    if(obj.children("input").length > 0){
    return false;
    }
    var text = obj.html();
    obj.html("");
    var inputObj = $("<input type='text'>").css("border-width","0").css("font-size","16px")
    .width(obj.width()).css("background-color",obj.css("background-color")).css("text-align","center")
    .val(text).appendTo(obj);
    inputObj.trigger("focus").trigger("select");
    inputObj.click(function(){
    return false;    
    }) ;
    });
      

  6.   

    JQuery文档上html()的用法为:取得第一个匹配元素的html内容。这个函数不能用于XML文档。但可以用于XHTML文档。
    按照2楼的直接写在页面上并把数据写入td中是可以直接alert出数据来的,但是单独写在一个js文件里面却是alert一个html的<input>的样式。
      

  7.   

    for(var j=0;i <tbl.rows[i].cells.length;j++)
    中的红色部分应该改为j,给table写了个id,但是代码放在页面没有反应。
      

  8.   

    如果td里面是input的话,要取.val(),不是.html() 
      

  9.   


    <script src="js/jquery-1.3.2.js" type="text/javascript"> </script> 
    <script type="text/javascript"> 
    window.onload=function(){
    $("tbody td").click(function(){
                var obj = $(this);
                if(obj.children("input").length > 0){
                    return false;
                }
                var text = obj.html();
                obj.html("");
                var inputObj = $("<input type='text'>").css("border-width","0").css("font-size","16px")
                    .width(obj.width()).css("background-color",obj.css("background-color")).css("text-align","center")
                    .val(text).appendTo(obj);
                inputObj.trigger("focus").trigger("select");
                inputObj.click(function(){
                    return false;    
                }) ;
    });}
    function doit(){
      $(".product td:nth-child(5) input").each(function(){
         alert($(this).val())    
      })
    }
    </script>
    <input type="button" onclick="doit();" value="click">
    <table>
    <tbody id="tbody"> 
                <tr> 
                    <th>序号 </th> 
                    <th>名称 </th> 
                    <th>单价 </th> 
                    <th>重量 </th> 
                    <th>价格 </th> 
                </tr>
                <tr class="product"> 
                    <td>1</td> 
                    <td>xxx</td> 
                    <td>1.2</td> 
                    <td>1.3</td> 
                    <td>1.4</td>    
                </tr> 
                <tr class="product"> 
                    <td>2</td> 
                    <td>xxx</td> 
                    <td>2.2</td> 
                    <td>2.3</td> 
                    <td>2.4</td>    
                </tr> 
    </tbody> 
    </table>