4

我需要分别创建两个对象,然后一个接一个地添加并从函数返回组合对象。我的要求是我必须将此对象附加到函数之外,并且函数应该将 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
4

4 回答 4

3

我不得不为此使用.add() ...已解决!

_div.add(_tab);
于 2013-10-09T06:17:07.193 回答
1

实际上这是很奇怪的行为,jquery 文档明确指出这应该在 jquery > 1.4 中工作(http://api.jquery.com/after/#after-content-content参见插入断开节点的部分)但是在我的小提琴中它确实在 jquery 1.9.1 中不起作用,但在 1.6.4->1.8.3 中起作用

http://jsfiddle.net/XSXYW/

apparantly i need code to post fiddle links

你用的是什么版本?

于 2013-10-09T07:24:01.663 回答
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());

正在光荣地工作。问题是表中没有行。

于 2013-10-09T06:35:56.890 回答
0
return _div + _tab

就这么简单

after在对象之后添加一个元素并仅返回对象它不能将 2 分组,因为它们是兄弟姐妹,并且 _div 必须保留 _div 或者如果 _div 变成div+tab ,您会想象 dom 中的混乱吗?你怎么去 _div ?

于 2013-10-09T06:45:44.297 回答