0

I'm trying to output all first tds in all table rows, but .html() only outputs the first, rather than all.

From the jQuery website:

Description: Get the HTML contents of the first element in the set of matched elements.

Relevant code:

$("button").click(function() {
  var table1 = '<table><tr>';
  var data = $("#myTable tr:first-child").html();
  var table2 = '</tr></table>';
  var output = table1 + data + table2;
  $(".result").html(output);
});

When I change it to:

$("#myTable:first-child").html();

All matching elements are output, all trs, instead of just the first.

How can I output all first tds? And what does this rule of only first matched element mean? It seems only to apply sometimes...

http://jsfiddle.net/vaVe9/

4

2 に答える 2

1

これはあなたが望むことをしますか?

$("button").click(function() {
  var $table1 = $('<table><tr>')
  var $data = $("#myTable tr td:first-child");
    $.each($data, function () {
        $table1.append($(this));
    );
  $table1.append($('</tr></table>'));
  $(".result").append($table1);
});
于 2012-12-14T00:22:32.913 に答える
1

それがどのように.html()機能するかです

必要に応じて反復する必要がありtdます。

var data = '';
$("#myTable tr td:first-child").each(function(){
   data+= $(this).html();
});

.html()ただし、選択した要素の内部 HTML のみが表示されることにも留意する必要があります。

tdしたがって、結果を自分でラップする必要があります

var data = '';
$("#myTable tr td:first-child").each(function(){
   data+= '<td>' + $(this).html() + '</td>';
});

ドキュメントの状態

HTML ドキュメントで.html()は、任意の要素のコンテンツを取得するために使用できます。セレクター式が複数の要素に一致する場合、最初の一致のみがその HTML コンテンツを返します。

于 2012-12-14T00:09:47.163 に答える