qwe*_*ymk 18 javascript jquery
这两个中的哪一个是正确的方法:
$('<div>')
Run Code Online (Sandbox Code Playgroud)
要么
$('<div />')
Run Code Online (Sandbox Code Playgroud)
他们似乎都工作.一种方式比另一种方式更正确,还是它们都能起作用?
Bla*_*ger 12
它们在jQuery中产生相同的结果.
j08*_*691 11
来自文档:
如果将字符串作为参数传递给$(),jQuery将检查字符串以查看它是否看起来像HTML(即,它
<tag ... >在字符串中的某处).如果不是,则将字符串解释为选择器表达式,如上所述.但是如果字符串看起来像是一个HTML片段,那么jQuery会尝试按照HTML的描述创建新的DOM元素.然后创建并返回一个引用这些元素的jQuery对象.您可以在此对象上执行任何常用的jQuery方法:
$('<p id="test">My <em>new</em> text</p>').appendTo('body');
Run Code Online (Sandbox Code Playgroud)
如果HTML比没有属性的单个标记更复杂,就像在上面的示例中那样,元素的实际创建由浏览器的innerHTML机制处理.在大多数情况下,jQuery会创建一个新元素,并将元素的innerHTML属性设置为传入的HTML片段.当参数具有单个标记时,例如
$('<img />') or $('<a></a>'),jQuery使用本机JavaScript createElement()函数创建元素.
为确保跨平台兼容性,代码段必须格式正确.可以包含其他元素的标记应与结束标记配对:
$('<a href="http://jquery.com"></a>');
Run Code Online (Sandbox Code Playgroud)
或者,jQuery允许类似XML的标记语法(在斜杠之前有或没有空格):
$('<a/>');
Run Code Online (Sandbox Code Playgroud)
不能包含元素的标签可以快速关闭或不关闭:
$('<img />');
$('<input>');
Run Code Online (Sandbox Code Playgroud)