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()

2行目のHTMLしか取得できませんが、3行目の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 オブジェクトをループしていないためです。そのため、2 番目の最初のオブジェクトのみが返されます。tr

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