You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

jQuery选择器提取日期时返回空字符串问题求助

jQuery选择器提取日期时返回空字符串问题求助

兄弟,我一眼就瞅出问题根源了——你的HTML结构犯了语法错误,这才导致jQuery选择器完全失效!

你在<p>标签里嵌套了<div>元素,但根据HTML规范,<p>是短语内容容器,根本不能包含div这种块级元素。浏览器在解析这种不合法的嵌套时,会自动修正DOM结构,直接把div从p标签里“踢出去”。最终实际渲染的DOM结构会变成这样:

<p data-a-target="smc-detail-page-thank-you-summary-amount-collected-date"></p>
<div tabindex="-1" class="expandable-text-wrapper">Jun 18, 2024</div>
<p></p>

这时候你原来的选择器$('[data-a-target="smc-detail-page-thank-you-summary-amount-collected-date"] .expandable-text-wrapper')自然找不到元素了——div已经不是那个p标签的后代了,所以返回空字符串也就不奇怪了。

给你两个解决方案:

  • 最优方案:修正HTML结构
    把包含div的<p>标签换成<div>(div可以嵌套任何元素,完全符合规范)。修改后你的原选择器就能正常工作了:
    原代码:

    <p class="claim-summary-expandable-text__body--collapsed tw-c-text-white tw-font-size-6 tw-md-font-size-5" data-a-target="smc-detail-page-thank-you-summary-amount-collected-date">
      <div tabindex="-1" class="expandable-text-wrapper">Jun 18, 2024</div>
    </p>
    

    修改后:

    <div class="claim-summary-expandable-text__body--collapsed tw-c-text-white tw-font-size-6 tw-md-font-size-5" data-a-target="smc-detail-page-thank-you-summary-amount-collected-date">
      <div tabindex="-1" class="expandable-text-wrapper">Jun 18, 2024</div>
    </div>
    
  • 临时方案:适配浏览器修正后的DOM
    如果暂时没法改HTML,就换个选择器定位。比如用相邻兄弟选择器,找到目标p标签后面的第一个.expandable-text-wrapper:

    let dateString = $('[data-a-target="smc-detail-page-thank-you-summary-amount-collected-date"] + .expandable-text-wrapper').text();
    

    或者结合父容器更稳妥地定位:

    let dateString = $('[data-a-target="smc-detail-page-thank-you-summary-amount-collected-date"]').closest('[data-a-target="BasicInfoChildren"]').find('.expandable-text-wrapper').text();
    

你可以打开浏览器开发者工具(F12)查看Elements面板里的实际DOM结构,就能直观看到浏览器是怎么修正你的HTML的,也能帮你彻底理解问题所在。

备注:内容来源于stack exchange,提问作者NaturalBornCamper

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 17:42:58