jquery $(”)vs $(”)
可能重复:
jQuery中$(”)vs $(”)
这两个中的哪一个是正确的方法:
$('')
要么
$('')
他们似乎都工作。 一种方式比另一种方式更正确,还是它们都能起作用?
它们在jQuery中产生相同的结果。
来自文档 :
如果将字符串作为参数传递给$(),jQuery将检查字符串以查看它是否看起来像HTML(即,它在字符串中的某处具有
)。 如果不是,则将字符串解释为选择器表达式,如上所述。 但是如果字符串看起来像是一个HTML片段,那么jQuery会尝试按照HTML的描述创建新的DOM元素。 然后创建并返回引用这些元素的jQuery对象。 您可以在此对象上执行任何常用的jQuery方法:
$('My new text
').appendTo('body');
如果HTML比没有属性的单个标记更复杂,就像在上面的例子中那样,元素的实际创建由浏览器的innerHTML机制处理。 在大多数情况下,jQuery会创建一个新元素,并将元素的innerHTML属性设置为传入的HTML片段。当参数具有单个标记时,例如$('') or $('')
,jQuery使用本机JavaScript createElement()函数创建元素。
为确保跨平台兼容性,代码段必须格式正确。 可以包含其他元素的标记应与结束标记配对 :
$('');
或者,jQuery允许类似XML的标记语法(在斜杠之前有或没有空格):
$('');
不能包含元素的标签可以快速关闭或不关闭:
$(''); $('');
虽然它们似乎产生相同的结果,但根据用途它们可能不会产生相同的结果。 例如:
当jQuery解析$('
')
,
标记将是
标记的子标记,因此结果将是:
当jQuery解析$('
') ,
标签将是
标签的兄弟 ,因此结果将是:
两种变体都给你相同的结果但是这样
$('', {id:"myID",class:"mycssClass class2 clazzz",some-attribute: "value"});
更好,更可读
$('');
Interesting Posts