jQuery $(”)和$(’p’)之间有什么区别

有人可以向我解释jQuery中$('

')$('p')之间的区别。

例如,如果我写:

 $('body').append($('

').html('hello my friend'));

然后出现’你好我的朋友’的文字。

但是,当我写:

 $('body').append($('p').html('hello my friend')); 

没有任何事情发生

区别:

$('

')

创建一个新的paragraph-element

$('p')选择DOM中的所有段落元素

你的案子:

例1:

 $('body').append($('

').html('hello my friend'));

将创建一个新的paragraph-element,给它一些文本,然后将元素添加到body中。

例2:

 $('body').append($('p').html('hello my friend')); 

将选择已经存在于DOM中的所有段落元素并将其内容更改为“hello my friend”,然后将它们全部附加到正文,这没有多大意义,因为它们已经在DOM中。

由于运行此代码时没有任何内容可见,因此您的页面可能不包含任何

元素,因此没有任何内容与$("p")选择器匹配。

$('

')

创建一个新段落(

)元素。 (

$('p')选择所有现有的段落元素。

例如:

 $('p').after($('

').html('foo'))

将选择所有段落并在其后添加段落。

jQuery可以解析HTML并创建一个实际的DOM元素。 也就是说,当你执行类似$("

") ,jQuery会解析标记并在内部创建一个可以附加到文档的DOM段落元素。

另一方面,jQuery集成了Sizzle ,一个CSS选择器引擎。 jQuery函数接受CSS选择器,这意味着$("p")正在选择文档中的所有段落元素 。 您还可以使用更复杂的选择器,如$("p:first-child")并选择文档的第一段。

在此处了解有关jQuery CSS选择器的更多信息。