Javascript .html()中的多个元素

Javascript .html()中的多个元素,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我必须创建对象:对象S和对象SD //form group startTime formStart = $(fstart).clone(); s = $(d).clone(); $(s).addClass('input-group date datetimepicker-s').html(startTime); sd = $(d).clone(); $(sd).addClass('input-group date datetimepicker-s').html(startDat

我必须创建对象:对象S和对象SD

//form group startTime
formStart = $(fstart).clone();
s = $(d).clone();
    $(s).addClass('input-group date datetimepicker-s').html(startTime);

sd = $(d).clone();
    $(sd).addClass('input-group date datetimepicker-s').html(startDate);
我想这样把他们放在同一组中:

$(formStart).html(s,sd).prepend('<label>Begintijd</label>');

当您想要传递jQuery对象时,根本不应该使用
.html()
。而是使用接受元素数组或变量数的:

formStart.append(s, sd)
如果要首先清空父元素(复制
.html()
)的行为),请使用(令人惊讶的是):



还要注意,
.clone
返回一个jQuery对象,因此
formstart
已经是一个jQuery对象,您应该使用
formstart
而不是
$(formstart)
。与
s
sd
相同。如果您不太熟悉jQuery的基础知识,我建议您阅读jQuery教程:。

您可以使用

append()

$(formStart).empty().append(s,sd)

s
sd
已经是jQuery对象,无需再次将它们包装在
$()
中。$(元素)。追加(s)。追加(sd)?@oGeez谢谢,formStart也是如此。它已经是一个对象了!我将在我的代码中编辑它!谢谢你!这对我有用。我还看到了另一个选项:$(formStart).html(s.add(sd));那也行。。哪个是更好的选择?我很快就会接受你的回答@Drogon使用
append()
是肯定的better@Drogon:根据文档,
.html
不应与jQuery对象一起使用事件(但它可能会)。如果您有DOM元素,那么没有理由先将它们转换为HTML字符串,然后让浏览器再次将HTML字符串解析回DOM元素,前提是您可以直接使用DOM元素。如果希望更熟悉DOM,请参阅。理解JS、DOM和HTML之间的关系很重要。@FelixKling事实上我在浏览了
.HTML()
doc之后删除了我的答案,但它确实有效。为什么jquery文档在此上下文中不清楚。。?犯错误不适用于您:)@RajaprabhuAravindasamy:有两种方法使用文档中未指定的值。我不知道文档是否不是最新的,或者他们是否不想鼓励其他用户,但仍然想支持作为安全防护的东西。谁知道呢:)
append(e)
不会产生与
相同的结果。html(e)
会产生与
相同的结果。append()
不会清除目标元素的内容,而只是附加到它。在追加之前,您需要使用
.emtpy()
或类似工具。
formStart.empty().append(s, sd)
$(formStart).append(s,sd)
$(formStart).empty().append(s,sd)