选择$('p')。get()长度与预格式化标签不符

0 jquery

我现在正在学习jQuery,因此我正在测试一些基本内容,但遇到了一些小问题。

我有这个-当我点击按钮时,它会提示我“ 4”!怎么了?

var paragrafi;

$(function() {
  paragrafi = $('p').get();
});

function test() {
  alert(paragrafi.length);
}
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<p>
  First paragraph.
</p>

<p>
  <pre>
Second paragraph with some preformatted code.
</pre>
</p>

<p>
  Third paragraph.
</p>

<button onClick="test()">TEST</button>
Run Code Online (Sandbox Code Playgroud)

j08*_*691 6

在浏览器呈现源代码时检查源代码。段落不允许包含<pre>元素,因此浏览器会尝试为您修复无效的HTML并将其更改为:

<p>
  First paragraph.
</p>

<p>
  </p><pre>Second paragraph with some preformatted code.
</pre>
<p></p>

<p>
  Third paragraph.
</p>
Run Code Online (Sandbox Code Playgroud)

段落是块级元素,特别是如果在关闭</p> 标记之前解析了另一个块级元素,则段落将自动关闭。

因此有四个段落