使用jQuery创建新元素的正确或更好的方法是什么?

Vix*_*xed 11 html javascript tags jquery frameworks

与答案/sf/answers/743363421/相关以清除元素更好用

$("<div>", {id: "foo", class: "a"});
Run Code Online (Sandbox Code Playgroud)

要么

$("<div />", {id: "foo", class: "a"});
Run Code Online (Sandbox Code Playgroud)

它们都有效,但哪个更好或更正确?

官方API文档说,为了确保跨平台兼容性,代码片段必须格式正确.可以包含其他元素的标记应与结束标记配对:

$( "<a href='http://jquery.com'></a>" );
Run Code Online (Sandbox Code Playgroud)

而不能包含元素的标签可以快速关闭或不关闭:

$( "<img>" );
$( "<input>" );
Run Code Online (Sandbox Code Playgroud)

那么,最后使用div的前两个选项之一是错误的吗?

Que*_*tin 7

如果你只使用可以轻松测量的指标:第一个更好,因为它缩短了2个字节.

一旦开始考虑可读性和其他不太明显的考虑因素,它就变成了一个很大的意见问题.

那么,最后使用div的前两个选项之一是错误的吗?

不,该部分仅适用于"如果HTML比没有属性的单个标签更复杂"

  • 您正在与一个旨在由Web开发人员调用的函数进行交流,他们长期以来一直在使Web浏览器执行大量的错误恢复,因此他们无需了解HTML的实际工作方式.更重要的是,您提供的*信息*完全相同,您只是使用稍微不同的字符组合来提供它. (2认同)
  • @Vixed你没有认识到你传递给`$('<someElement>')`的内容,它被解析然后变成一个真正的dom元素,这就是为什么它不需要关闭标签.看看`parseHtml()`如何在内部处理单个元素...它使用`document.createElement` ... http://james.padolsey.com/jquery/#v=1.11.2&fn=jQuery.parseHTML (2认同)