无法从动态表中追加行,但可以附加整个表

时间:2014-12-16 13:55:07

标签: jquery

我显然没有看到明显的东西,但为什么我不能将动态生成的表的一部分(在这种情况下为前两行)附加到div,但我可以追加整个表。

<div id="divarea"></div>

    var table = '<table id="abc">';
    for (var i=0; i<15; i++) {
  table += '<tr>';
  table += '<td>one</td>';
  table += '<td>two</td>';
  table += '<td>three</td>';
  table += '<td>four</td>';
  table += '<td>five</td>';
  table += '<td>six</td>';
  table += '<td>seven</td>';
  table += '<td>eight</td>';
  table += '</tr>';
}
table += '</table>';

// var limitTable = $('#abc tr:lt(2)'); 
// $('#output').append(limitTable);          Doesn't work 

$('#output').append(table); // This works

编辑:table id =&#34; abc&#34;加入

JSFIDDLE

2 个答案:

答案 0 :(得分:5)

您没有使用正确的选择器。您可以使用:

var limitTable = $("tr:lt('2')", table);

var table = '<table id = "abc">';
for (var i = 0; i < 15; i++) {
  table += '<tr>';
  table += '<td>one</td>';
  table += '<td>two</td>';
  table += '<td>three</td>';
  table += '<td>four</td>';
  table += '<td>five</td>';
  table += '<td>six</td>';
  table += '<td>seven</td>';
  table += '<td>eight</td>';
  table += '</tr>';
}
table += '</table>';
//the second parameter provides the context
//in which to search the element matched by the first selector
var limitTable = $("tr:lt('2')", table);
$('#output').append(limitTable);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="output"></div>

最好将表元素追加到表中而不是div中。

答案 1 :(得分:1)

在jquery中使用 find()

var limitTable =  $(table).find("tr:lt(2)");
 $('#output').append(limitTable);

<强> DEMO