Удалить все теги <br>из строки - не работает должным образом - PullRequest
0 голосов
/ 24 сентября 2019

Я испробовал дюжину решений, и ничто не помогло.

HTML:

<div class="mont-text-content mobile">С чего следует начинать запуск своего бизнеса.
    <br><br>Как и где находить идеи для бизнеса.
    <br><br>Как справляться со своими страхами и обрушивающейся критикой родных, друзей и знакомых. Когда вам говорят, что ничего не получится?
    <br><br>Как понять, что вам действительно следует ступать на путь предпринимательства и заниматься бизнесом, а не работать на дядю с 9 до 18.
    <br><br>Как себя мотивировать и находить силы, чтобы не сдаться?
    <br><br>На все эти и другие вопросы вы найдете ответы на нашем юридическом бизнес-вебинаре.</div>

<div class="mont-text-content mobile">Правильный выбор видов деятельности и организационно-правовой формы вашего будущего бизнеса является очень важным фактором.
    <br><br>Во-первых, для легализации деятельности, возможности открытого взаимодействия с государственными и частными органами, контрагентами, инвесторами и пр., оптимизации операций, которые подлежат налогообложению.
    <br><br>А во-вторых, для возможности действовать в рамках правового поля, используя законодательство в качестве мощного инструмента для защиты и развития своего бизнеса.
    <br><br>Вы узнаете, в чём состоит отличие ФЛП на 1 группе от 2 и 3 групп. А также какая организационно-правовая форма, по состоянию на сегодня, является самой оптимальной и менее «затратной» для бизнеса.</div>

JS:

$( ".mont-text-content.mobile" ).each(function( index ) {
    let content = $(this).text();
    let newContent = content.replace(/^(\s*<br\s*\/?\s*>\s*)*|(\s*<br\s*\/?\s*>\s*)*\s*$/g, '');
    alert( index + ": " + newContent );
});

А вот ссылка наa JSFiddle

Как видите, теги <br> преобразуются в странные символы Uni-кода и не удаляются из строки.

Ответы [ 3 ]

0 голосов
/ 25 сентября 2019

вы можете сделать что-то вроде этого, извините за замену случайного текста, это просто для большей ясности.

$(".mont-text-content.mobile").each(function() {
  $(this).html($(this).html().replace(/\<br>/g, ""));
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div class="mont-text-content mobile">
  Lorem ipsum dolor sit amet, consectetur adipiscing elit
  <br><br>Lorem ipsum dolor sit amet, consectetur adipiscing elit
  <br><br>Lorem ipsum dolor sit amet, consectetur adipiscing elit
  <br><br>Lorem ipsum dolor sit amet, consectetur adipiscing elit
  <br><br>Lorem ipsum dolor sit amet, consectetur adipiscing elit
  <br><br>Lorem ipsum dolor sit amet, consectetur adipiscing elit</div>

<div class="mont-text-content mobile">
  Lorem ipsum dolor sit amet, consectetur adipiscing elit
  <br><br>Lorem ipsum dolor sit amet, consectetur adipiscing elit
  <br><br>Lorem ipsum dolor sit amet, consectetur adipiscing elit
  <br><br>Lorem ipsum dolor sit amet, consectetur adipiscing elit</div>
0 голосов
/ 25 сентября 2019

Вы можете сделать это просто следующим образом:

document.querySelectorAll('.mont-text-content').forEach((divElm) => {
    Array.from(divElm.children).forEach((elm) => {
        if (elm.tagName === 'BR') {
            elm.remove();
        }
    });
});

Это в ES6.Но его легко переписать в ES5.

Сначала я нашел все элементы с именем класса, а затем перевел эти элементы в цикл forEach.

Затем необходимо преобразовать список элементов HTML в массив ииди брось массив и удали элемент, если это тэг br.

0 голосов
/ 25 сентября 2019

Вы можете сделать что-то подобное, хотя я не уверен, будет ли это наиболее эффективным:

 var x =    $( ".mont-text-content.mobile" ).html();
 var res = x.replace('<br>',"");
 $(".mont-text-content.mobile" ).html(res);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...