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"});

更好,更可读

 $('
');