将行的一部分作为新行添加到表中

时间:2012-09-13 16:25:12

标签: jquery html

有一个表格,其链接在点击时添加了新行:

    <table>
                <thead>
                  <tr>
                    <th scope="col">col1</th>
                    <th scope="col">col2</th>
                    <th scope="col">col3</th>
                  </tr>
                </thead>

                <tbody>
                  <tr>
                    <td><input name="col1" id="col1"></td>
                    <td><input name="col2" id="col2"></td>
                    <td>
                      <select name="col3" id="col3">
                        <option value="">Please select</option>
                        <option value="1">select1</option>
                        <option value="2">select1</option>
                        <option value="3">select1</option>
                      </select>
                    </td>
                  </tr>
                </tbody>
            </table>
<a href="#" id="addLink">+</a>

单击链接时,我想添加一个新行但没有第3列到表的末尾。所以我使用JQuery来做到这一点:

$(document).ready(function(){
                $('#addLink').click(function(){
                    addTableRow($("table"));
                    return false;
                }); // end click
            function addTableRow(table)
            {
                // get the first row in the table
                var $tr = $(table).find("tbody tr:first").html();

                $($tr).remove('td:last'); // remove the last column 


                $('tbody').append("<tr>");
                $(table).find('tbody tr:last').append($tr);


                        };
            }); // end ready

但是,这部分并未删除第3列:

$($tr).remove('td:last'); // remove the last column

有没有办法只添加前两列的新行?

提前致谢:)

3 个答案:

答案 0 :(得分:1)

无需使用html方法:

$(table).find("tbody tr:first td:last").remove();

答案 1 :(得分:1)

这就是你要找的东西吗?

我也改变了一些其他的东西,你会明白的。

$(document).ready(function(){
  $('#addLink').click(function(){
    addTableRow($("table"));
    return false;
  }); // end click
  function addTableRow(table) {
    // get the first row in the table
    var $tr = table.find("tbody tr:first").html();


    $('tbody').append($('<tr/>'));
    table.find('tbody tr:last').append($tr).find('td:last').remove();


  };
}); // end ready​

http://jsfiddle.net/QTuzM/

答案 2 :(得分:-1)

    $('tbody').append("<tr>");
                $(table).find('tbody tr:last').append($tr);
???

怎么样

$(table).find('tbody').append($tr)