【问题标题】:Jquery before() and after() used to create a <div> container not inserting closing tags in after()Jquery before() 和 after() 用于创建一个 <div> 容器,而不是在 after() 中插入结束标签
【发布时间】:2019-06-11 07:37:30
【问题描述】:

我有 2 个容器,例如:

<div class="one col-md-6">container one</div>
<div class="two col-md-6">container two</div>

我想在例如前后插入开始标签和结束标签

$( ".one" ).before( "<div class='row'>" );

$( ".two" ).after( "</div>" );

但是当我检查时,结果是

&lt;div class="row"&gt;&lt;/div&gt;

而不是

<div class="row">
   <div class="one col-md-6">container one</div>
   <div class="two col-md-6">container two</div>
</div>

知道为什么吗?

【问题讨论】:

    标签: jquery html


    【解决方案1】:

    DOM 结构必须始终在代码中的每一点都有效。在您调用.before 之后,会为您 创建结束标记,否则该结构将无效。

    改用.wrapAll

    $(".one, .two").wrapAll("<div class='row'>");
    
    console.log($('.row').html());
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <div class="one col-md-6">container one</div>
    <div class="two col-md-6">container two</div>

    【讨论】:

    • .wrapAlll 的问题是我的容器在 foreach 循环中的另一个容器内。因此,当我使用.wrapAll 时,它会包装我想在一个主容器中添加元素的容器。
    • @Horcrux 你能在你的问题中编辑实际的 HTML 结构吗?
    • @CertainPerformance,我试试,很长的代码,用wordpress
    猜你喜欢
    • 1970-01-01
    • 2021-09-12
    • 2014-07-18
    • 1970-01-01
    • 2015-01-14
    • 2021-11-23
    • 2011-08-17
    • 1970-01-01
    相关资源
    最近更新 更多