使用jQuery中的循环检索所有表列值

时间:2012-07-24 21:33:58

标签: jquery asp.net html vb.net

我在页面上有几个表,我需要运行一个循环来获取所有列值并将它们保存在逗号分隔的字符串中(我将这些字符串传递给ASP.NET页面的隐藏字段)。我怎么能写一个循环,以便它可以从let的“Route1”表中读取列值。不幸的是,我不能仅仅因为用户可以使用(jQuery)将它们从一个表混洗到另一个表而不依赖于#ID的TR和TD。

简单来说,我怎么能写一个循环来读取下表的列值

<table ID = "Route1">
    <tr>
        <td>row 1 col1</td> <td> row1 col2 </td>
    </tr>
    <tr>
       <td>row 1 col1</td> <td> row1 col2 </td>
   </tr>
</table>


<table ID = "Route2">
    <tr>
        <td>row 1 col1</td> <td> row1 col2 </td>
    </tr>
    <tr>
        <td>row 1 col1</td> <td> row1 col2 </td>
    </tr>

</table>

4 个答案:

答案 0 :(得分:2)

试试这个:

var str = $("table:first").find("td").map(function(){
               return $(this).text()
          }).get().join(',')

DEMO

答案 1 :(得分:1)

var values = [];

$('#Route1 td').each(function () {
    values.push( $(this).text() );
});

var myString = values.join(',');

演示:http://jsfiddle.net/2xpFZ/

答案 2 :(得分:0)

$('#Route1 td').map(function() {
  return $(this).text();
}).get().join(',')

然而,普通的JavaScript循环将更加高效。

答案 3 :(得分:0)

这是一种在普通javascript中执行此操作的方法:

function getTableCells(id) {
    var data = [];
    var cells = document.getElementById(id).getElementsByTagName("td");
    for (var i = 0; i < cells.length; i++) {
        data.push(cells[i].innerHTML);
    }
    return(data.join(","));
}

var str = getTableCells("Route1");