我正在尝试使用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);
答案 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);