【问题标题】:Retrieving All table column values using loop in jQuery在jQuery中使用循环检索所有表列值
【发布时间】:2026-01-21 07:25:01
【问题描述】:

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

简单来说,我如何编写一个循环来读取下表的列值

<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>

【问题讨论】:

  • 忘了说这是一个与 JQUERY 相关的问题。我正在寻找 JQUERY 中的循环
  • 逗号分隔的字符串应该是什么样的?
  • 现在我正在这样做。但我需要在循环中执行相同的操作 route1stop1col1 = $('#Route1 tr').find("td").eq(0).html(); route1stop1col2 = $('#Route1 tr').find("td").eq(1).html(); route1stop1col3 = $('#Route1 tr').find("td").eq(2).html(); route1stop1 = route1stop1col1 + "," + route1stop1col2 + "," + route1stop1col3
  • 我建议您花几分钟时间阅读summary list of jQuery methods and selectors

标签: jquery asp.net html vb.net


【解决方案1】:

试试这个:

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

DEMO

【讨论】:

    【解决方案2】:
    var values = [];
    
    $('#Route1 td').each(function () {
        values.push( $(this).text() );
    });
    
    var myString = values.join(',');
    

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

    【讨论】:

    • 如果我想逐行做呢。就像每行有一个字符串(实际上这是我应该解释的目标)
    • 如果您希望每行有一个字符串,则不使用最后一行(.join())。 values(数组)中的每个元素都是对应于一行的字符串。
    • 我取出了最后一行。但是我应该在 myString 变量中加载什么。将“值”直接加载到 mystring 中给了我所有的 tds
    • 这就是我更改代码以实现所需结果的方式 var values = []; $('#Route1 td').each(function () { values.push($(this).text()); }); // var myString = values.join(','); route1stop1 = values[0] + "," + values[1] + "," + values[2] alert(route1stop1); route1stop2 = values[4] + "," + values[5] + "," + values[6] alert(route1stop2); });
    • 您也可以使用$('#Route1 td').each( ... )$('#Route2 td').each( ... ) 来构建您的字符串 route1stop1 和 route1stop2(如果我理解的话,不确定)。 :)
    【解决方案3】:
    $('#Route1 td').map(function() {
      return $(this).text();
    }).get().join(',')
    

    不过,一个普通的 JavaScript 循环会更高效。

    【讨论】:

      【解决方案4】:

      这是一种使用纯 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");
      

      【讨论】:

        最近更新 更多