Javascript 如何在一行中将子项追加到div中

Javascript 如何在一行中将子项追加到div中,javascript,jquery,html,dom,Javascript,Jquery,Html,Dom,我希望先用一个div替换一个元素,然后该div将通过append()生成一些子元素: $(el.html(“”).append(“”).append(“”) 没有给我想要的,因为div和span是兄弟 我还尝试: $(el).replaceWith('<div></div>').append('<span></span>').append('<span></span>') $(el).replacetwith('').a

我希望先用一个div替换一个元素,然后该div将通过append()生成一些子元素:

$(el.html(“”).append(“”).append(“”)
没有给我想要的,因为div和span是兄弟

我还尝试:

$(el).replaceWith('<div></div>').append('<span></span>').append('<span></span>')
$(el).replacetwith('').append('').append('')
没有成功。这一行不适用于AngularJS(指令)

有没有一种简单的方法来生成div的子对象

更新:

这就是我最终使用的:

$(element)
  .html($('<div class="property-filter"></div>')
  .append(labelElm)
  .append(amountElm)
  .append(sliderElm));
$(元素)
.html($('')
.append(labelElm)
.append(amountElm)
.append(sliderElm));
因为(对我来说)很容易理解

感谢所有的解决方案

试试这个

var div= $('<div></div>')
var mm= $('<span>b</span>')
var combnd= div.append(mm)
var fresult=combnd.append(mm)
fresult.appendTo(el)​
var div=$(“”)
变量mm=$('b')
var combnd=div.append(毫米)
var fresult=combnd.append(毫米)
附录F(el)​

您的代码不工作,因为
$(el).html(“”)
返回
$(el)
。这是一个方法链

$(el).html($('<div></div>').append('<span></span>').append('<span></span>'));​
$(el.html($('').append('').append('');​

$('').append('').append('').appendTo(el);

$(el).html($('').append('').append('')
为什么不干脆这样做呢

$(el).html('<div><span></span><span></span></div>')
$(el.html(“”)
使用此

var div = $('<div></div>').append('<span></span>').append('<span></span>');

$(el).parent().html(div);​
var div=$('').append('').append('');
$(el.parent().html(div);​

这将替换
$(el)
的内容,如您所问:

$(el).html('<span />').append('<span />').wrapInner('<div />');​
$(el.html(“”).append(“”).wrapInner(“”);​

在第一行添加了一个遗漏的
无效。他们仍然是兄弟姐妹。除了将跨度作为jQuery元素分配给变量之外,还有什么区别呢?实际上,它现在起作用了。原来的那个。斯佩兰斯基·丹尼尔:我错了,我刚给它重命名,现在它可以用了。你的第一个更好!我添加了原来的一个作为解决方案。也许把它改回去?我很好奇为什么这必须在一行中完成?我知道,你能,并不意味着你应该。但如果可能的话,那会更好。更少的代码。更简洁的代码。仅仅因为你写的代码更少,并不意味着你在做一件好事。从左到右考虑代码的可读性。几个月后回来需要调试时会发生什么?您的可读性随着您将菊花链添加到最后一个函数上的每个函数而降低。如果您希望在生产中使用更少的代码,为什么不使用工具来缩小呢?@wingy,您说过“我希望先用div替换一个元素”。这只是将div附加到已经存在的内容上。他的原始解决方案是正确的。我已经告诉他把它换回来了。如果他不这样做,我会把这个标记为正确答案。奇怪的是,它对我起了作用。不管怎样,他都没有改变,所以给你。很好地反驳了这一点!:)
var div = $('<div></div>').append('<span></span>').append('<span></span>');

$(el).parent().html(div);​
$(el).html('<span />').append('<span />').wrapInner('<div />');​