在特定行下面添加tr

时间:2015-09-29 07:45:29

标签: javascript

我的每一行都有不同记录的表。 点击td中的“show”链接后。我想在当前tr下面显示另一个tr。

点击“显示”链接后,我正在调用“opentr”功能。 如何使用链接“uniqueid”的id

在当前tr之后添加新的tr
<table id="table" border="0">
<th>Col 1</th> <th>Col2</th> <th>col3</th>
<tbody>
<tr>
<td>
    <a onclick ="opentr();" id="uniqueid">show</a>
</td>
<td>
    <input type="text"></input>
</td>
<td>
    <input type="text"></input>
</td>
</tr>
</tbody>
</table>

4 个答案:

答案 0 :(得分:0)

这是一个香草js样本。注意添加的&#34;这个&#34;在html&#34; onclick&#34;处理程序。

如果您希望我可以展示如何添加一个全局处理程序来处理所有行的onclick链接。

&#13;
&#13;
function opentr(el) {
    var currTR = el.parentNode.parentNode;
    var newTR = document.createElement("tr");
    newTR.innerHTML = "<td>Col 1</td><td>Col 2</td><td>Col 3</td>";
    currTR.parentNode.insertBefore(newTR, currTR.nextSibling);
}
&#13;
.after { font-weight: bold }
&#13;
<table id="table" border="0">
<th>Col 1</th> <th>Col2</th> <th>col3</th>
<tbody>
<tr>
<td>
    <a onclick ="opentr(this);" id="uniqueid">show</a>
</td>
<td>
    <input type="text"></input>
</td>
<td>
    <input type="text"></input>
</td>
</tr>
</tbody>
</table>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

我在此示例中找到了解决方案 http://live.datatables.net/harurej/1/edit

这是我的代码

        $('#tablaConsolidado tbody').on('click', 'td.details-control', function () {
           var tr = $(this).closest('tr');
            var row = table.row(tr);

           if (table.row(tr).child.isShown() ) {
               // This row is already open - close it
               table.row(tr).child.hide();
               tr.removeClass('shown');
           }
           else {
                // Open this row
                 ajax().done(function(result) {
                  // Code depending on result
                     tr.addClass('shown');
                     table.row(tr).child(
                        $(result.d)
                    ).show();

               }).fail(function() { 
                   // An error occurred
               }); 

           }
       });

答案 2 :(得分:-1)

@Raj

我相信你正在寻找这样的东西。 http://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_table_insertrow

我已粘贴对该链接的代码稍作修改并使用了您的表格结构。

<table id="myTable" border="0">
<th>Col 1</th> <th>Col2</th> <th>col3</th>
<tbody>
<tr>
<td>
    <a onclick ="opentr(this);" href='#' id="uniqueid">show</a>
</td>
<td>
    <input type="text"></input>
</td>
<td>
    <input type="text"></input>
</td>
</tr>
</tbody>
</table>

<script>
function opentr(anchor) {
    var currentTr = anchor.parentElement.parentElement;
    var table = currentTr.parentElement;
    var row = table.insertRow(currentTr.rowIndex);
    var cell1 = row.insertCell(0);
    var cell2 = row.insertCell(1);
    var cell3 = row.insertCell(1);
    cell1.innerHTML = "NEW CELL1";
    cell2.innerHTML = "NEW CELL2";
    cell3.innerHTML = "NEW CELL3";
}
</script>

答案 3 :(得分:-1)

这对我有用

function opentr() 
{
  var oldTr = $('.uniqueid').parents("tr:first");
  var newTr = $("<tr><td></td></tr>");
  oldTr.after(newTr);
}