为什么这个追加工作不起作用?

时间:2014-07-03 04:37:18

标签: javascript jquery

JS:

 var $sel = $("<select></select>");
 $sel.append("<option>1</option");
 var $sel = $sel.appendTo("<div></div>");
 $sel.insertAfter("#mydiv");

HTML:

 <div id=mydiv></div>

这只会附加选择框,但不包含在div中。我想将另一个div包含的select包含在#mydiv中。我试过了:

$sel.appendTo("<div></div>").insertAfter("#mydiv");

但这不起作用

3 个答案:

答案 0 :(得分:3)

$sel只是选择框,而不是包装它的东西。如果你也想要,你可以把它放在一个变量中:

var $div = $("<div></div>");
$div.append($sel).insertAfter("#mydiv");

当然还有十几种其他方法可以做到这一点,但这样可以保持一切美观和有条理。

答案 1 :(得分:2)

使用jQuery .wrap()。试试这个:

var $sel = $("<select></select>");
$sel.append("<option>1</option");
$sel.wrap("<div></div>").parent().insertAfter("#mydiv");

<强> DEMO

答案 2 :(得分:1)

您的代码可以使用appendTo,并且不需要使用wrap,但是您插入了错误的元素,即select而不是包含select的div。您需要将$sel.parent()与insertAfter()

一起使用

<强> Live Demo

var $sel = $("<select></select>");
$sel.append("<option>1</option");
var $sel = $sel.appendTo("<div></div>");
$sel.parent().insertAfter("#mydiv");      //Insert the parent of select instead of select.