jQuery:创建新元素时,我需要结束标记吗?

var $div = $('
').appendTo($('#header'));

在创建新元素并将其添加到DOM时,您是否需要结束标记? 为什么或者为什么不? 如果我将内容放入我正在创建的标签中,我是否只需要结束标签? 像这样:

 var $div = $('
Error-Homie!
').appendTo($('#header'));

或者我可以创建一个包含内容的元素,但是省略结束标记? 好? 坏?

 var $div = $('
').appendTo($('#header'));

虽然如果你不使用结束标记(或者至少自我关闭标记)它可能有用, 你应该添加一个结束标记(自我关闭) (如上所述,用于跨平台兼容性 ):

为确保跨平台兼容性,代码段必须格式正确。 可以包含其他元素的标记应与结束标记配对:

 $(''); 

或者,jQuery允许类似XML的标记语法(在斜杠之前有或没有空格):

 $(''); 

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

 $(''); $(''); 

这就是jQuery创建元素的方式:

如果HTML比没有属性的单个标记更复杂,就像在上面的例子中那样,元素的实际创建由浏览器的innerHTML机制处理。 在大多数情况下,jQuery会创建一个新元素,并将元素的innerHTML属性设置为传入的HTML片段。当参数具有单个标记时,例如$('')$('') ,jQuery使用本机JavaScript createElement()函数创建元素。


顺便说一句。 您也可以将数据作为第二个参数传递:

 $('
', {'class': 'error', text: 'Error-Homie!'})

你需要结束标签: http : //api.jquery.com/appendTo/例如

 $('

Test

').appendTo('.inner');

它也应该是

 .appendTo('#header'); 

并不是

 .appendTo($('#header')); 

你可以这样做

 $('
',{class:'error'}).html('Error-Homie!').appendTo($('#header'));

您始终需要结束标记才能拥有正确的html。

但事实上,大多数浏览器都会让这种错误失效。 但是,没有理由懒惰,你不应该依赖浏览器对代码的容忍度。 这种容差是为了能够显示有一些错误的网站,而不是故意警告错误的代码。

Interesting Posts