首頁  >  問答  >  主體

如何使用JavaScript或jQuery將一組HTML元素包裹在一個父HTML元素中,並使它們保持在每個父元素內?

<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></span></span></div></span></span></div></span>> </span></div></div>
P粉204136428P粉204136428403 天前392

全部回覆(1)我來回復

  • P粉659518294

    P粉6595182942023-08-18 11:38:00

      const wrapper = document.querySelector('.wpb_wrapper');
      const spans = wrapper.querySelectorAll('span');
    
      const customDiv = document.createElement('div');
      customDiv.classList.add('custom-div');
    
      spans.forEach(span => {
        customDiv.appendChild(span);
      });
    
      wrapper.appendChild(customDiv);
    <div class="wpb_wrapper">
      <h2><img decoding="async" class="alignnone size-full wp-image-9244" src="icon-briefcase.svg" alt="" width="24" height="24">Functional Experience</h2>
      <p></p>
      <span class=""></span>
      <span class=""></span>
      <span class=""></span>
      <span class=""></span>
    </div>

    非常直接,我們只需將span元素附加到新建立的div元素中。然而,問題在於我們假設將其附加到wgb_wrapper的末尾。

    回覆
    0
  • 取消回覆