我正在尝试输出所有表格行中的所有第一个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? 只有第一个匹配元素的这个规则是什么意思?似乎只是有时适用......
答案 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>';
});
在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);
});