【问题标题】:jQuery Remove Closest Issues in ChromejQuery 删除 Chrome 中最接近的问题
【发布时间】:2017-03-20 06:07:59
【问题描述】:

菜鸟在这里抱歉。当我的 WP 循环返回具有特定类的空消息时,我正在尝试删除祖先。 Firefox 正在按预期显示,删除了所需的 DOM,但 Chrome 正在删除目标元素并且没有祖先。

基本 HTML 标记:

<div id="content" class="container site-content">
  <div id="primary" class="main-content">
    <div id="main-box-1" class="main-box border-top">
      <div class="main-box-inside">
        <p class="no-modules-msg">No posts match your criteria. Please choose different options.</p>
      </div>
    </div>
    <div id="main-box-2" class="main-box border-top  ">
      <h3 class="main-box-title">More Stuff</h3>
      <div class="main-box-inside">
      </div>
    </div>
  </div>
</div>

还有我的脚本:

(function($) {
  $("document.body").ready(function() {
    $("p.no-modules-msg")
      .closest(".main-box")
      .remove(".main-box")
  })
})(jQuery);

它在小提琴中正常工作,但不是在现场...

https://jsfiddle.net/y90gtt6t/

【问题讨论】:

    标签: javascript jquery wordpress google-chrome cross-browser


    【解决方案1】:

    它不能在您的网站上运行的原因是因为文档很清楚,只有 document 有一个现成的处理程序

    jQuery(document).ready(function($) {
        $("p.no-modules-msg").closest(".main-box").remove()
    });
    

    您对"document.body" 的使用实际上是在寻找像&lt;document class="body"&gt;&lt;/document&gt; 这样的元素,但它希望永远找不到。

    【讨论】:

    • 我在这里添加了一个基于线程的线程无济于事,应该删除它。我已经尝试了您的确切代码,并且得到了与 FF 删除祖先 .main-box 相同的结果,而 Chrome 正在删除 p.no-modules-msg。
    • @user3015094 - 我稍微改变了它,但它应该删除所有浏览器中最接近的.main-box,这是一个测试 -> jsfiddle.net/unckjbv7
    • 谢谢,但 Chrome / Edge 仍然只删除

    • 这是不可能的,除非 &lt;p&gt;.main-box
    • 它没有。只是 .no-modules-msg 在

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多