jQuery除了第一个之外如何获取所有行HTML?

时间:2012-08-17 14:44:49

标签: jquery

我有一个表格,我希望获得除第一行之外的所有行的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?

2 个答案:

答案 0 :(得分:2)

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

  

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

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

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

<强> Fiddle

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

var html = '';

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

答案 1 :(得分:1)

这是因为你没有循环遍历每个tr对象 - 所以它只会返回第一个对象,即第二个tr

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