为什么这个小提琴给出4的结果?

时间:2011-08-28 17:33:57

标签: jquery

http://jsfiddle.net/sushilbharwani/zWgNX/我试图理解>选择器我想知道为什么小提琴给出的大小为4. 2是我想到的。 3可能是可能的,但为什么4。

HTML:

<div class="ban_hdr">
    <p>
        Which of the following are correct? abc abc
        <p>Test this code</p>
    </p>
<p>Which of the following are correct? pqr pqr</p>
</div>

jQuery的:

alert($('div.ban_hdr > p').size());

3 个答案:

答案 0 :(得分:6)

我在Chrome的开发者工具中提取了源代码,至少谷歌Chrome如何解释你的来源:

<div class="ban_hdr">
    <p>
        Which of the following are correct? abc abc
    </p>
    <p>Test this code</p>
    <p></p>
    <p>Which of the following are correct? pqr pqr</p>
</div>

<p>代码无法嵌套在<p>代码中。所以,这显然是Chrome对你的意思的最好诠释。去搞清楚。当您使用无效代码时,请注意无意义的结果。

答案 1 :(得分:4)

由于您的P代码已嵌套(不允许使用),浏览器会将其重新排列为:

<p> Which of the following are correct? abc abc </p>
<p>Test this code</p>
<p></p>
<p>Which of the following are correct? pqr pqr</p>

现在很容易看出为什么结果是4。

答案 2 :(得分:3)

您无法嵌套p标记。此HTML的呈现输出为:

<div class="ban_hdr">
    <p>
        Which of the following are correct? abc abc</p> <!-- 1 -->
        <p>Test this code</p> <!-- 2 -->
    <p></p> <!-- 3 -->
<p>Which of the following are correct? pqr pqr</p> <!-- 4 -->
</div>