javascript - 一种无需使用循环即可从表中获取所有表行的简单方法

标签 javascript jquery

有没有一种简单的方法可以在不使用循环的情况下从表中获取所有表行。

我认为这会起作用,但它只提醒第一行。

http://jsfiddle.net/THPWy/

    $(document).ready(function () {

        var O = $('#mainTable').find('tr');
        //var O = $('#mainTable tr');

        alert(O.html());

       //alerts     <th>Month</th><th>Savings</th> 

    });





<table id ="mainTable" border="1">
  <caption>Monthly savings</caption>
  <tr>
    <th>Month</th>
    <th>Savings</th>
  </tr>
  <tr>
    <td>January</td>
    <td>$100</td>
  </tr>
  <tr>
    <td>February</td>
    <td>$50</td>
  </tr>
  <tr>
    <td>March</td>
    <td>$50</td>
  </tr>
  <tr>
    <td>a</td>
    <td>$50</td>
  </tr>
  <tr>
    <td>m</td>
    <td>$50</td>
  </tr>
  <tr>
    <td>j</td>
    <td>$50</td>
  </tr>
  <tr>
    <td>july</td>
    <td>$50</td>
  </tr>
  <tr>
    <td>aug</td>
    <td>$50</td>
  </tr>
  <tr>
    <td>sep</td>
    <td>$50</td>
  </tr>
</table>

最佳答案

无论您使用什么,都会迭代每一行以从中获取内部 HTML。所以不,如果没有循环,你就无法做到这一点。

这是一种替代方法,可以在一行中获取消息(如果这就是您想要的),但它比循环效率稍低,因为它需要创建一个新数组。

jsFiddle

$(document).ready(function () {
    var rows = $('#mainTable tr');
    var message = $.map(rows, function (v) { 
        return v.innerHTML;
    }).join('\n');
    alert(message);
});

我建议只在常规循环中执行此操作。


仅供引用 .html() 仅提醒第一行,因为这就是 it was designed to do因为这是最有用的。

Description: Get the HTML contents of the first element in the set of matched elements.

关于javascript - 一种无需使用循环即可从表中获取所有表行的简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16477553/

相关文章:

Javascript 打印函数 - 文件名

javascript - 如何使用 facebook javascript api 发布自定义帖子

javascript - jQuery Before(和其他 DOM 操作)未在 Internet Explorer 中执行

javascript - 自动滚动到 Magento 中的下一个选项

javascript - deezer 播放器和 url 更改没有音乐停止

javascript - 列中的 Jquery Keyup

javascript - 如何在单击时切换 Slick slider (向下滑动并向上滑动)

javascript - 悬停背景(放大),前面的文字没有放大

javascript - jQuery 添加按钮到 div

ajax - JQuery.Ajax POST 请求到 Azure 返回错误请求