jquery .html()输出除1之外的所有元素

时间:2012-12-14 00:07:11

标签: jquery html css-selectors

我正在尝试输出所有表格行中的所有第一个tds,但.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();

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

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

http://jsfiddle.net/vaVe9/

2 个答案:

答案 0 :(得分: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>';
});

documentation

  

在HTML文档中,.html()可用于获取任何元素的内容。 如果选择器表达式与多个元素匹配,则只返回第一个匹配的HTML内容。

答案 1 :(得分: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);
});