0

我正在尝试输出所有表行中的所有第一个 td,但.html()只输出第一个,而不是全部。

来自 jQuery 网站:

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

相关代码:

$("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);
});

当我将其更改为:

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

输出所有匹配的元素,所有 trs,而不仅仅是第一个。

如何输出所有第一个 td?这个只有第一个匹配元素的规则是什么意思?它似乎只适用于有时......

http://jsfiddle.net/vaVe9/

4

2 回答 2

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 回答
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 回答