亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將所有子元素包裝在一個類中?

如何將所有子元素包裝在一個類中?

弒天下 2022-06-16 15:05:39
我有一個函數可以拆分元素中的所有行并將它們包裝在<div>. 例如,如果我有一個看起來像這樣的元素:<div class="test">  Lorem Khaled Ipsum is a major key to success. I’m up to something. To be successful you’ve  got to work hard, to make history, simple, you’ve got to make it. I told you all this before, when   you have a swimming pool, do not use chlorine, use salt water, the healing, salt water is the healing.   The key to more success is to get a massage once a week, very important, major key, cloth talk.   Wraith talk. Don’t ever play yourself. </div>然后它像這樣包裝所有行:<div class="test">  <div class="line_wrap">Lorem Khaled Ipsum is a major key to success. I’m up to something. To be successful you’ve</div>  <div class="line_wrap">got to work hard, to make history, simple, you’ve got to make it. I told you all this before, when </div>   <div class="line_wrap">you have a swimming pool, do not use chlorine, use salt water, the healing, salt water is the healing. </div>   <div class="line_wrap">The key to more success is to get a massage once a week, very important, major key, cloth talk. </div>   <div class="line_wrap">Wraith talk. Don’t ever play yourself.</div> </div>我遇到的問題是我正在尋找一種將這些物品包裝在另一個中的方法,<div>例如:<div class="test">  <div class="wrap">    <div class="line_wrap">Lorem Khaled Ipsum is a major key to success. I’m up to something. To be successful you’ve</div>    <div class="line_wrap">got to work hard, to make history, simple, you’ve got to make it. I told you all this before, when </div>     <div class="line_wrap">you have a swimming pool, do not use chlorine, use salt water, the healing, salt water is the healing. </div>     <div class="line_wrap">The key to more success is to get a massage once a week, very important, major key, cloth talk. </div>     <div class="line_wrap">Wraith talk. Don’t ever play yourself.</div>   </div></div>到目前為止,我已經嘗試wrapall使用.each函數,但它做了 4 層包裝,如果我有多個元素,它將獲取所有元素并將它們放在第一個元素中。我的問題是:如何將所有孩子包裝成一個<div>?
查看完整描述

3 回答

?
慕的地6264312

TA貢獻1817條經驗 獲得超6個贊

您可以通過僅針對我們在內部方法中循環.line_wrap的當前div 中的 div來解決此問題。這是必要的,這樣我們就不會在所有div中一次包裝所有內容:.wrapped.each().line_wrap.wrapped


$(".emails .multi-items .wrapped").each(function (i) {

    $('.line_wrap', this).wrapAll("<div class='test'></div>");

});

工作演示:

function wrapNewLines(targetSelector, wrapEl = 'span', wrapClass = 'new-line') {

  const content = document.querySelectorAll(targetSelector)

  content.forEach(section => {

    let sectionWidth = section.getBoundingClientRect().width

    let words = section.innerText.split(/( )/g)

    section.innerHTML = ''

    words.forEach(word => {

      section.innerHTML += `<span>${word}</span>`

    })

    let lines = []

    let line = []

    let lineWidth = 0

    let spans = section.querySelectorAll('span')

    spans.forEach((span, i) => {

      let spanWidth = span.getBoundingClientRect().width

      if (lineWidth + spanWidth <= sectionWidth - 1) {

        line.push(span)

        lineWidth += spanWidth

      } else {

        lines.push(line)

        line = []

        lineWidth = 0

        line.push(span)

        lineWidth += spanWidth

      }

    })

    if (line.length) lines.push(line)

    let newLines = lines

      .map(

        line =>

        `<${wrapEl} class=${wrapClass}>${line

              .map(span => span.innerText)

              .join('')}</${wrapEl}>`

      )

      .join('')

    section.innerHTML = newLines

  })

}

wrapNewLines('.emails .multi-items .message-contain #content', 'div', 'line_wrap');


$.each($('.message-contain'), function(i, message) {

  var size = 6; //define how many elements you want in each wrapper

  var items = $(message).find('.line_wrap'); //the collection of all your items

  var container; //this will be used to add the items in it.

  $.each(items, function(i, item) {

    //this expression checks if we need to create a new container

    if (i % size === 0) {

      container = $('<div class="wrapped"></div>'); //create a new container

      $(message).append(container); //add the new container to the body

    }


    $(item).appendTo(container); //add the item to the container

  });

});


$(".emails .multi-items .wrapped").each(function (i) {

    $('.line_wrap', this).wrapAll("<div class='test'></div>");

});

.wrapped {

  background: black;

  color: white

}


.line_wrap {

  border: 1px solid #aa0000;

  padding: 4px 8px;

}


#content {

  margin: 35px

}


.test {

  color: yellow

}

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div class="emails">

  <ul class="multi-items">

    <div class="message-contain">

      <div id="content">

        1 - The first of the month is coming, we have to get money, we have no choice. It cost money to eat and they don’t want you to eat. Egg whites, turkey sausage, wheat toast, water. Of course they don’t want us to eat our breakfast, so we are going to enjoy

        our breakfast. They key is to have every key, the key to open every door. To succeed you must believe. When you believe, you will succeed. They don’t want us to eat. Another one. Major key, don’t fall for the trap, stay focused. It’s the ones

        closest to you that want to see you fail. To be successful you’ve got to work hard, to make history, simple, you’ve got to make it. The key to success is to keep your head above the water, never give up. Stay focused. They don’t want us to eat.

        The key is to drink coconut, fresh coconut, trust me. Give thanks to the most high. Surround yourself with angels, positive energy, beautiful people, beautiful souls, clean heart, angel. Congratulations, you played yourself. Major key, don’t fall

        for the trap, stay focused. It’s the ones closest to you that want to see you fail. They never said winning was easy. Some people can’t handle success, I can. Another one. You smart, you loyal, you a genius. Look at the sunset, life is amazing,

        life is beautiful, life is what you make it. The key to success is to keep your head above the water, never give up. They don’t want us to eat. Put it this way, it took me twenty five years to get these plants, twenty five years of blood sweat

        and tears, and I’m never giving up, I’m just getting started.

      </div>

    </div>

    <div class="message-contain">

      <div id="content">

        2 - The key to more success is to get a massage once a week, very important, major key, cloth talk. Eliptical talk. Every chance I get, I water the plants, Lion! Egg whites, turkey sausage, wheat toast, water. Of course they don’t want us to eat our breakfast,

        so we are going to enjoy our breakfast. The other day the grass was brown, now it’s green because I ain’t give up. Never surrender. Put it this way, it took me twenty five years to get these plants, twenty five years of blood sweat and tears,

        and I’m never giving up, I’m just getting started.

      </div>

    </div>

  </ul>

</div>


查看完整回答
反對 回復 2022-06-16
?
慕勒3428872

TA貢獻1848條經驗 獲得超6個贊

只需刪除 children 函數,因為您想包裝 jQuery 集合本身。


function wrapNewLines(targetSelector, wrapEl = 'span', wrapClass = 'new-line') {

    const content = document.querySelectorAll(targetSelector)

    content.forEach(section => {

      let sectionWidth = section.getBoundingClientRect().width

      let words = section.innerText.split(/( )/g)

      section.innerHTML = ''

      words.forEach(word => {

        section.innerHTML += `<span>${word}</span>`

      })

      let lines = []

      let line = []

      let lineWidth = 0

      let spans = section.querySelectorAll('span')

      spans.forEach((span, i) => {

        let spanWidth = span.getBoundingClientRect().width

        if (lineWidth + spanWidth <= sectionWidth - 1) {

          line.push(span)

          lineWidth += spanWidth

        } else {

          lines.push(line)

          line = []

          lineWidth = 0

          line.push(span)

          lineWidth += spanWidth

        }

      })

      if (line.length) lines.push(line)

      let newLines = lines

        .map(

          line =>

            `<${wrapEl} class=${wrapClass}>${line

              .map(span => span.innerText)

              .join('')}</${wrapEl}>`

        )

        .join('')

      section.innerHTML = newLines

    })

}    

wrapNewLines('.emails .multi-items .message-contain #content','div', 'line_wrap');



$.each($('.message-contain'), function(i, message) { 


  var size = 6; //define how many elements you want in each wrapper

  var items = $(message).find('.line_wrap'); //the collection of all your items

  var container; //this will be used to add the items in it.

  

  $.each(items, function(i, item) { 

  

    //this expression checks if we need to create a new container

    if (i % size === 0) {

      container = $('<div class="wrapped"></div>'); //create a new container

      $(message).append(container); //add the new container to the body

    }


    $(item).appendTo(container); //add the item to the container

   });

});


$('.wrapped').each(function () {

  $(this).find('.line_wrap').wrapAll("<div class='test'></div>")

});

.wrapped {background:black;color:white}

.line_wrap {border:1px solid #aa0000}

#content {margin:35px}

.test {color:yellow}

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div class="emails">

<ul class="multi-items">

  <div class="message-contain">

      <div id="content">

                    1 -  The first of the month is coming, we have to get money, we have no choice. It cost money to eat and they don’t want you to eat. Egg whites, turkey sausage, wheat toast, water. Of course they don’t want us to eat our breakfast, so we are going to enjoy our breakfast. They key is to have every key, the key to open every door. To succeed you must believe. When you believe, you will succeed. They don’t want us to eat.

Another one. Major key, don’t fall for the trap, stay focused. It’s the ones closest to you that want to see you fail. To be successful you’ve got to work hard, to make history, simple, you’ve got to make it. The key to success is to keep your head above the water, never give up. Stay focused. They don’t want us to eat. The key is to drink coconut, fresh coconut, trust me. Give thanks to the most high. Surround yourself with angels, positive energy, beautiful people, beautiful souls, clean heart, angel. Congratulations, you played yourself.

Major key, don’t fall for the trap, stay focused. It’s the ones closest to you that want to see you fail. They never said winning was easy. Some people can’t handle success, I can. Another one. You smart, you loyal, you a genius. Look at the sunset, life is amazing, life is beautiful, life is what you make it. The key to success is to keep your head above the water, never give up. They don’t want us to eat. Put it this way, it took me twenty five years to get these plants, twenty five years of blood sweat and tears, and I’m never giving up, I’m just getting started.

      </div>

  </div>

<div class="message-contain">

      <div id="content">

                    2 - The key to more success is to get a massage once a week, very important, major key, cloth talk. Eliptical talk. Every chance I get, I water the plants, Lion! Egg whites, turkey sausage, wheat toast, water. Of course they don’t want us to eat our breakfast, so we are going to enjoy our breakfast. The other day the grass was brown, now it’s green because I ain’t give up. Never surrender. Put it this way, it took me twenty five years to get these plants, twenty five years of blood sweat and tears, and I’m never giving up, I’m just getting started.

      </div>

  </div>

</ul>

</div>


查看完整回答
反對 回復 2022-06-16
?
HUH函數

TA貢獻1836條經驗 獲得超4個贊

您可以嘗試使用.wrapped元素創建一個循環,找到.line_wrap里面的所有元素并將它們包裝起來:


$('.wrapped').each(function () {

    $(this).find('.line_wrap').wrapAll("<div class='test'></div>")

});

function wrapNewLines(targetSelector, wrapEl = 'span', wrapClass = 'new-line') {

    const content = document.querySelectorAll(targetSelector)

    content.forEach(section => {

      let sectionWidth = section.getBoundingClientRect().width

      let words = section.innerText.split(/( )/g)

      section.innerHTML = ''

      words.forEach(word => {

        section.innerHTML += `<span>${word}</span>`

      })

      let lines = []

      let line = []

      let lineWidth = 0

      let spans = section.querySelectorAll('span')

      spans.forEach((span, i) => {

        let spanWidth = span.getBoundingClientRect().width

        if (lineWidth + spanWidth <= sectionWidth - 1) {

          line.push(span)

          lineWidth += spanWidth

        } else {

          lines.push(line)

          line = []

          lineWidth = 0

          line.push(span)

          lineWidth += spanWidth

        }

      })

      if (line.length) lines.push(line)

      let newLines = lines

        .map(

          line =>

            `<${wrapEl} class=${wrapClass}>${line

              .map(span => span.innerText)

              .join('')}</${wrapEl}>`

        )

        .join('')

      section.innerHTML = newLines

    })

}    

wrapNewLines('.emails .multi-items .message-contain #content','div', 'line_wrap');



$.each($('.message-contain'), function(i, message) { 


  var size = 6; //define how many elements you want in each wrapper

  var items = $(message).find('.line_wrap'); //the collection of all your items

  var container; //this will be used to add the items in it.

  

  $.each(items, function(i, item) { 

  

    //this expression checks if we need to create a new container

    if (i % size === 0) {

      container = $('<div class="wrapped"></div>'); //create a new container

      $(message).append(container); //add the new container to the body

    }


    $(item).appendTo(container); //add the item to the container

   });

});


$('.wrapped').each(function () {

  $(this).find('.line_wrap').wrapAll("<div class='test'></div>")

});

.wrapped {background:black;color:white}

.line_wrap {border:1px solid #aa0000}

#content {margin:35px}

.test {color:yellow}

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div class="emails">

<ul class="multi-items">

  <div class="message-contain">

      <div id="content">

                    1 -  The first of the month is coming, we have to get money, we have no choice. It cost money to eat and they don’t want you to eat. Egg whites, turkey sausage, wheat toast, water. Of course they don’t want us to eat our breakfast, so we are going to enjoy our breakfast. They key is to have every key, the key to open every door. To succeed you must believe. When you believe, you will succeed. They don’t want us to eat.

Another one. Major key, don’t fall for the trap, stay focused. It’s the ones closest to you that want to see you fail. To be successful you’ve got to work hard, to make history, simple, you’ve got to make it. The key to success is to keep your head above the water, never give up. Stay focused. They don’t want us to eat. The key is to drink coconut, fresh coconut, trust me. Give thanks to the most high. Surround yourself with angels, positive energy, beautiful people, beautiful souls, clean heart, angel. Congratulations, you played yourself.

Major key, don’t fall for the trap, stay focused. It’s the ones closest to you that want to see you fail. They never said winning was easy. Some people can’t handle success, I can. Another one. You smart, you loyal, you a genius. Look at the sunset, life is amazing, life is beautiful, life is what you make it. The key to success is to keep your head above the water, never give up. They don’t want us to eat. Put it this way, it took me twenty five years to get these plants, twenty five years of blood sweat and tears, and I’m never giving up, I’m just getting started.

      </div>

  </div>

<div class="message-contain">

      <div id="content">

                    2 - The key to more success is to get a massage once a week, very important, major key, cloth talk. Eliptical talk. Every chance I get, I water the plants, Lion! Egg whites, turkey sausage, wheat toast, water. Of course they don’t want us to eat our breakfast, so we are going to enjoy our breakfast. The other day the grass was brown, now it’s green because I ain’t give up. Never surrender. Put it this way, it took me twenty five years to get these plants, twenty five years of blood sweat and tears, and I’m never giving up, I’m just getting started.

      </div>

  </div>

</ul>

</div>


查看完整回答
反對 回復 2022-06-16
  • 3 回答
  • 0 關注
  • 111 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號