如何使用JavaScript或jQuery将一组HTML元素包裹在一个父HTML元素中,并使它们保持在每个父元素内?
P粉204136428
2023-08-17 15:27:06
<p>我正在尝试使用JavaScript或jQuery将所有<span>标签包装在一个</span></p><div>标签中的另一个<div>标签中。我想要找到所有具有类名为<code>wpb_wrapper</code>的元素,然后在其中查找所有的<span>标签,并将这些<span>标签组包装在每个<code>wpb_wrapper</code>中的一个单独的<div>标签中,以便每个<code>wpb_wrapper</code>中的子<span>标签组仍然是子元素,但是包装在内部的一个<div>标签中,而不是在页面上的每个<span>标签中都包装在一个单独的<div>标签中。<p><br /></p>
<p>从这个:</p>
<pre class="brush:php;toolbar:false;"><div class="wpb_wrapper">
<span class=""></span>
<span class=""></span>
<span class=""></span>
<span class=""></span>
</div>
<div class="wpb_wrapper">
<span class=""></span>
<span class=""></span>
<span class=""></span>
<span class=""></span>
</div>
<div class="wpb_wrapper">
<span class=""></span>
<span class=""></span>
<span class=""></span>
<span class=""></span>
</div></pre>
<p>变成这个:</p>
<pre class="brush:php;toolbar:false;"><div class="wpb_wrapper">
<div class="">
<span class=""></span>
<span class=""></span>
<span class=""></span>
<span class=""></span>
</div>
</div>
<div class="wpb_wrapper">
<div class="">
<span class=""></span>
<span class=""></span>
<span class=""></span>
<span class=""></span>
</div>
</div>
<div class="wpb_wrapper">
<div class="">
<span class=""></span>
<span class=""></span>
<span class=""></span>
<span class=""></span>
</div>
</div></pre>
<p>我尝试过这个,但它仍然只是抓取所有<code>wpb_wrapper</code>中的<span>标签,并将其包装在第一个<code>wpb_wrapper</code>中的一个单独的</span></p><div>标签中<p><br /></p>
<pre class="brush:php;toolbar:false;">jQuery('.wpb_wrapper').each(function(){
jQuery(this).find('span').wrapAll('<div class=""/>');
});</pre>
<p><br /></p>
<pre class="snippet-code-js lang-js prettyprint-override"><code>jQuery('.wpb_wrapper').each(function() {
jQuery(this).find('span').wrapAll('<div class=""/>');
});
console.log(document.body.innerHTML);</code></pre>
<pre class="snippet-code-css lang-css prettyprint-override"><code>.wpb_wrapper { border: 1px solid; }
.wpb_wrapper > div { border: 1px dotted red; }
.wpb_wrapper > div > span { border: 1px dashed blue; }</code></pre>
<pre class="snippet-code-html lang-html prettyprint-override"><code><script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="wpb_wrapper">
<span class="">0</span>
<span class="">0</span>
<span class="">0</span>
<span class="">0</span>
</div>
<div class="wpb_wrapper">
<span class="">1</span>
<span class="">1</span>
<span class="">1</span>
<span class="">1</span>
</div>
<div class="wpb_wrapper">
<span class="">2</span>
<span class="">2</span>
<span class="">2</span>
<span class="">2</span>
</div></代码></pre>
<p><br /></p></div></div></span></div></span></div></span> </span></div></div>
非常直接,我们只需将span元素附加到新创建的div元素中。然而,问题在于我们假设将其附加到wgb_wrapper的末尾。