Задать вопрос

Как получить текст из комментария html и добавить его в массив?

Как получить текст из комментария html и добавить его в массив? Комментариев может быть несколько.
Html такого плана:
<div class="box"><strong><!-- comment-->Яблоко<!-- /comment--></strong>Текст текст тектс<!-- comment-->Груша<!-- /comment-->Текст текст</div>

Нужно, чтобы слова яблоко и груша были в массиве
  • Вопрос задан
  • 130 просмотров
Подписаться 1 Средний Комментировать
Решения вопроса 2
@StockholmSyndrome
function getTextInComments(el) {
  return [...el.childNodes].reduce((acc, curr) => {
    if (curr.nodeType === Node.ELEMENT_NODE) {
      acc.values.push(...getTextInComments(curr));
    } else if (curr.nodeType === Node.COMMENT_NODE) {
      acc.isComment = !acc.isComment;
    } else if (curr.nodeType === Node.TEXT_NODE && acc.isComment) {
      acc.values.push(curr.textContent);
    }

    return acc;
  }, {
    values: [], 
    isComment: false
  }).values;
}


const arr = getTextInComments(document.querySelector('.box'));
Ответ написан
Комментировать
@AlexRas
var html = '<div class="box"><strong><!-- comment-->Яблоко<!-- /comment--></strong>Текст текст тектс<!-- comment-->Груша<!-- /comment-->Текст текст</div>';

var arr = html.match(/<!-- comment-->(.*?)<!-- \/comment-->/g).map(function(val){
   return val.replace(/<!-- \/?comment-->/g,'');
});

console.log(arr);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы