Javascript jQuery:<;h>;视为<;p>;在jquery选择中

Javascript jQuery:<;h>;视为<;p>;在jquery选择中,javascript,jquery,html,jquery-selectors,Javascript,Jquery,Html,Jquery Selectors,一个简单的例子让我对jQuery中的选择器感到困惑。 我有以下html代码: <div class="container"> <h1>Welcome to my Website </h1> <p>First paragraph</p> <p>Second paragraph</p> </div> 但这是不正确的,事实上第一段将突出显示,即使我只有两个节,并且我将值2放入nth-ch

一个简单的例子让我对jQuery中的选择器感到困惑。 我有以下html代码:

<div class="container">
   <h1>Welcome to my Website </h1>
   <p>First paragraph</p>
   <p>Second paragraph</p>
</div>
但这是不正确的,事实上第一段将突出显示,即使我只有两个
节,并且我将值2放入
nth-child()
函数中

如果删除
元素,第二段将突出显示。因此,jQuery选择器似乎将
元素视为
元素

然而,守则:

$('p:nth child(1)').css(“背景色”、“黄色”)


不会突出显示任何内容。为什么会发生这种情况?

n个child
字面意思是“child in placen”,您要搜索的是
n个类型的
,看看:
因此,这将如您所期望的那样起作用:

$('p:nth-of-type(2)').css("background-color","yellow");

jsiddle:

:n子项
相对于父项,因此在第一个示例中,
实际上是第二个子项。如果你想让它成为第二个p,你应该使用

我真的不喜欢那些伪选择器,如果它是我的,我会使用
$('p').eq(1).css(…
@adeneo为什么你称它们为“伪选择器”?它们是选择器,但从技术上讲,在css中它们属于一个被称为的类别。术语“伪选择器”可能是这个短语的一个缺陷“伪类选择器”。
$('p:nth-of-type(2)').css("background-color","yellow");