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