2

簡単な例は、jQuery のセレクターについて私を混乱させています。私はこのhtmlコードを持っています:

<div class="container">
   <h1>Welcome to my Website </h1>
   <p>First paragraph</p>
   <p>Second paragraph</p>
</div>

2番目のパラグラフを強調したい場合は、これが正しい方法だと思います:

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

しかし、これは正しくありません。実際には、セクションが 2 つしかなく<p>、関数内に値 2 を入れている場合でも、最初の段落が強調表示されnth-child()ます。

ここに関連するjsfiddle

要素を削除する<h1>と、2 番目の段落が強調表示されます。ということで、要素がjQueryセレクターで要素<h1>として扱われているようです。<p>

ただし、コード:

$('p:nth-child(1)').css("background-color","yellow");

何も強調表示しません。なぜこれが起こるのですか?

4

2 に答える 2

6

nth-childあなたが探しているのは、文字通り「子の場所n」意味します 。期待どおりに動作します:nth-of-type

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

JSFiddle: http://jsfiddle.net/t2rn7/

于 2013-07-19T20:35:47.937 に答える
3

:nth-child親に関するものなので、最初の例で<p>は実際には2番目の子です。2番目のpにしたい場合は、使用する必要があります:nth-of-type

于 2013-07-19T20:35:56.993 に答える