【问题标题】:How to get the value of a row extracted using jQuery如何获取使用jQuery提取的行的值
【发布时间】:2011-07-01 10:46:25
【问题描述】:

我有一个表,我正在通过执行以下操作检索每个表行:

$(function(){
        $('table tr').click(function(){
            var $row = $(this).html();
            alert($row);
        });
    });

这让我得到这样的当前行:

<td>2</td>
<td>Malcriado</td>
<td>Bota</td>
<td>Tipo2</td>
<td>NuevaDesc</td>
<td>NuevaDesc</td>
<td></td>
<td>Cerdo</td>
<td>Azul</td>
<td>oso</td>
<td>Rojo</td>
<td>12</td>
<td>metal</td>
<td>sss</td>
<td></td>
<td>Delicias</td>

我接下来要完成的是删除 td 并获取其间的值并将它们放入数组中,但我无法完成此操作。有什么想法吗?

【问题讨论】:

    标签: jquery html-table html-content-extraction


    【解决方案1】:

    使用children()(docs) 方法获取&lt;td&gt; 元素,然后使用map()(docs) 方法创建包含值的对象,最后使用toArray()(docs) 方法将其转换为数组。

    $('table tr').click(function(){
        var values = $(this).children('td').map(function() {
            return this.innerHTML;
        }).toArray();
    
        alert(values);
    });
    

    【讨论】:

    • 是的,这很好,我会使用 innerText 而不是 innerHtml +1
    • @aSeptik:这是一个有效的观点,但由于没有实际的标记,结果将是相同的,对于innerText,您需要添加|| textContent 以获得跨浏览器支持。 :o)
    • 所以,谢谢分享...!哈哈,你一如既往的棒。 ;)
    【解决方案2】:
    $(function() {
        $('table tr').click(function() {
            var arr = [];
            $('td', this).each(function(i, item) {
                if (item.innerHTML) 
                  arr.push(item.innerHTML);
            });
            alert(arr.join(','));
        });
    });
    

    只是为了检查空&lt;TD&gt;

    【讨论】:

      【解决方案3】:

      遍历行中的元素并获取它们的文本:

      var contentArray = [];
      $("td", $row).each(function(){
        contentArray.push($(this).text());
      });
      

      【讨论】:

        猜你喜欢
        • 2017-08-04
        • 2015-08-12
        • 1970-01-01
        • 2010-12-27
        • 1970-01-01
        • 2023-03-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多