【问题标题】:jQuery insertAfter() not working as expectedjQuery insertAfter() 没有按预期工作
【发布时间】:2019-07-13 15:25:40
【问题描述】:

我正在尝试获取#filters 及其所有内容并将其插入到以下结构之后:

<div id = "top-level">

  <div id = "sub-level-1">
    <div class = "another-level">
      <div class = "last-level">
        <nav class = "nav-menu"></nav>
        <!-- insert #filters here -->
      </div>
    </div>
  </div>

  <aside>
    <div id = "filters"> 
      <div id = "filters-form">
        <div class = "more-contents"></div>
      </div>
    </div> 
  <aside>

</div>

很遗憾,我无法让它按预期工作。它似乎无法“找到” .nav-menu 并将其插入之后,尽管我可以在更高级别的元素之后插入它。

// this works
var filters = $("#filters");
filters.insertAfter("#sub-level-1");

// doesn't work
var filters = $("#filters");
filters.insertAfter(".nav-menu");

谁能帮忙?

【问题讨论】:

  • 请添加评论:&lt;!--...--&gt; 到您希望 $('#filters') 移动到的确切位置?

标签: jquery insertafter


【解决方案1】:

我对其进行了重新设计并使其正常工作。请记住,我输入了一些文本,以便我可以轻松地检查元素。

var filters = $("#filters");
filters.insertAfter(".nav-menu");
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id = "top-level">
  <div id = "sub-level-1">
    <div class = "another-level">
      <div class = "last-level">
        <nav class = "nav-menu">bbb</nav>
        <!-- insert #filters here -->
      </div>
    </div>
  </div>
  <aside>
    <div id = "filters"> 
      <div id = "filters-form">
        <div class = "more-contents">aaa</div>
      </div>
    </div> 
  </aside>
</div>

我做的一个编辑是你的旁边没有结束标签,只有两个开始标签,所以我修复了这个问题。

【讨论】:

  • 看起来你的 jQuery 和我的一模一样?
  • 是的,只是我只使用了你说不起作用的语句,而不是你说起作用的语句。您的代码中没有这样的两个示例,对吧?我唯一做的另一件事就是我在上面评论过的你的 HTML。
  • 嗯..我一定是从内存中错误地重新创建了目录结构。这在今天的工作中绝对行不通,而且我没有像代码中那样将它们放在一起。
  • 好的,如果你回来工作后仍然有问题,请重新发布它,希望你能得到一个可以解决它的答案。
  • 哦,如果你想让我删除这个,请告诉我。
猜你喜欢
  • 2018-03-17
  • 2012-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多