jquery。不适用于非附加对象

时间:2013-10-09 06:11:46

标签: javascript jquery

我需要分别创建两个对象,然后一个接一个地添加,并从函数返回组合对象。我的要求是我必须在函数和函数之外追加这个对象,并将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 个答案:

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

中有效

http://jsfiddle.net/XSXYW/

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?