1

我有一个表格,我想在其中获取除第一行之外的所有行的 HTML。

<table id="files-table">
     <tbody>
          <tr>
             <th class="text-left">Name</th>
             <th>Type</th>
             <th class="delete-th">Delete</th>
          </tr>
          <tr>
             <td class="text-left"><label class="label-none">a.docx</label></td>
             <td><label class="label-none">Manuscript</label></td>
             <td><input type="checkbox" class="del-cb"></td>
          </tr>
          <tr>
             <td class="text-left"><label class="label-none">test2.doc</label></td>
             <td><label class="label-none">Manuscript</label></td>
             <td><input type="checkbox" class="del-cb"></td>
          </tr>
      </tbody>
</table>

当我使用

$('#files-table> tbody > tr').not(':first').html()

我只得到第二行的 HTML,第三行的 HTML 在哪里?

4

2 回答 2

2

因为html方法返回html第一个匹配元素的内容。

获取匹配元素集中第一个元素的 HTML 内容。

您可以使用该each()方法,试试这个:

$('#files-table> tbody > tr').not(':first').each(function(){
   console.log($(this).html())
})

小提琴

您可以定义一个变量并存储匹配元素的 html 内容:

var html = '';

$('#files-table> tbody > tr:not(":first")').each(function(){
   html += $(this).html()
})
于 2012-08-17T14:47:11.230 回答
1

这是因为您没有遍历每个 tr 对象-因此它只会返回第一个对象,即第二个对象tr

$('#files-table> tbody > tr').not(':first').each(function(){
    console.log($(this).html());
});
于 2012-08-17T14:50:12.823 回答