Jquery wrap () - символ перед косой чертой `/` - PullRequest
1 голос
/ 24 октября 2019

До косой черты / могу ли я wrap() символ внутри тега HTML? Я хочу обернуть все символы в элемент HTML, которые находятся перед фрагментом /

jQuery:

var x = jQuery('.elementor-drop-cap-yes p').contents().filter(function(){
  return this.nodeType === 3
}).wrap('<span class="drop-caps" />');

Текущий результат:

<p>
  <span class="a">
    <span class="b">1</span>
  </span>
  0/10
</p>

ОжидаетсяРезультат:

<p>
  <span class="a">
    <span class="b">1</span>
  </span>
  <div class="c">
    <b class="d">0</b>/10
  <div>
</p>

Заранее спасибо!

1 Ответ

1 голос
/ 24 октября 2019

Вы можете попробовать следующую простую логику, чтобы получить перенос HTML

jQuery(function(){
  jQuery('.elementor-drop-cap-yes p').each(function(){
     var $div = jQuery('<div/>');
     var $children = $(this).children();
     $div.append($children);
     var text = jQuery(this).text();
     if(text.indexOf('/')>=0) {
        var index = text.indexOf('/');
        //console.log(index);
        var textParts = text.substring(0, index);
        var newHTML = '<div class="c"><b class="d">' + text.substring(0, index) +'</b>' + text.substring(index, text.length) + '</div>';
        jQuery(this).empty().append($children).append(newHTML);
     }
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="elementor-drop-cap-yes">
<p>
    <span class="a">
         <span class="b">1</span>
     </span>
    0/10
</p>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...