Jquery的问题相当于javascript createElement

时间:2010-02-04 20:44:57

标签: javascript jquery

我正在尝试使用jQuery重新创建以下代码:

        var node = document.createElement("div");
        node.innerHTML = "DynaColumn";
        node.className = "ui-state-default ui-corner-all";

        return node;

这是我试图开始工作的代码:

return $("<div class='ui-state-default ui-corner-all'>DynaColumn</div>");

第一个似乎工作正常。我不确定为什么第二个不起作用:

将使用此返回值的对象正在调用它:

something.appendChild(theNode);

4 个答案:

答案 0 :(得分:3)

appendChild是一个DOM方法,因此需要给出一个DOM节点,而不是jQuery包装器(由$(...)和大多数其他jQuery方法返回)。

从包含一个元素的jQuery包装器中获取包装节点的快速方法:

return $('<div class="ui-state-default ui-corner-all">DynaColumn</div>')[0];

答案 1 :(得分:1)

请记住,jQuery对象是围绕DOM对象的包装器。要从dQuery对象中获取dom对象,请使用get()函数。

return $('<div class="ui-state-default ui-corner-all">DynaColumn</div>').get(0);

答案 2 :(得分:1)

如果something是一个裸DOM元素,那么您需要:

something.appendChild(theNode[0]);

如果something是jQuery对象,那么您需要:

something.append(theNode);

答案 3 :(得分:0)

var $div = $(document.createElement("div"));
$div.html("DynaColumn");
$div.addClass("ui-state-default").addClass("ui-corner-all");
return $div; // or $(something).append($div);