我需要分别创建两个对象,然后一个接一个地添加,并从函数返回组合对象。我的要求是我必须在函数和函数之外追加这个对象,并将2个创建的对象作为一个返回。 见下面的代码。它只返回div ..没有表?
function html() {
var _tab = $("<table>").attr("id", "table_1")
var _div = $("<div>").attr("id", "div_1").text("test");
return _div.after(_tab);
}
$("body").append(html()); // only returns div .. no table
答案 0 :(得分:3)
我不得不使用.add()来解决这个问题......解决了!
_div.add(_tab);
答案 1 :(得分:1)
实际上这是非常奇怪的行为,jquery文档明确指出这应该在jquery&gt;中工作。 1.4(http://api.jquery.com/after/#after-content-content参见插入断开连接的节点部分) 但是在我的小提琴中,它在jquery 1.9.1中不起作用,但在1.6.4-> 1.8.3
中有效apparantly i need code to post fiddle links
您使用的是哪个版本?
答案 2 :(得分:0)
function html() {
var _tab = $("<table>").attr("id", "table_1")
_tab.html('<tr><td>Hi all</td></tr>');
var _div = $("<div>").attr("id", "div_1").text("test");
return _div.after(_tab);
}
$("body").append(html());
正在努力工作。问题是表中没有行。
答案 3 :(得分:0)
return _div + _tab
就像这个一样简单
after
在对象之后添加一个元素并返回该对象只有它不能将2分组,因为它们是兄弟姐妹而且_div必须保持_div,或者你想象如果_div变成 div则dom中的混乱+标签?你怎么去_div?