jquery选择标签套标签的问题

<p>
    <p>a</p>
    <p>b</p>
    <p>c</p>
</p>

$("p").eq(0).html() // " " 空字符
$("p").eq(1).html() // "a"
$("p").eq(2).html() // "b"
$("p").eq(3).html() // "c"

为什么第一个p选择的会是空的?要想选择外面的p所包含的html内容怎么写呢?

补充说明:

做爬虫遇到这个,用cheerio选择,和jquery使用方法一样。
因为不是自己写的html,所以没办法修改代码,只能靠工具选出来这一段

<div>
  <p>其他信息</p>
  <p>其他信息</p>
  <p>其他信息</p>
  <!--  -->
  <p>
    <p>需要的信息,条数不固定</p>
    <p>需要的信息,条数不固定</p>
    <p>需要的信息,条数不固定</p>
  </p>
  <!--  -->
  <p>其他信息</p>
  <p>其他信息</p>
</div>

阅读 1.8k
3 个回答

p标签不能够嵌套使用的,也就是p里面不能有p,否则会出现奇怪的事情

因为他并没有包裹起来,你可以打开控制台看看
新的段落开始就是旧的段落结束

上面代码等效于

<p>
<p>a
<p>b
<p>c</p>

先获取外层 p 的 innerHTML,然后再正则呗

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题