Получить содержимое с помощью exec js между двумя тегами HTML (<li class = «mortadela»> </ li>)

0

Мне нужно получить весь контент на HTML-странице для этих тегов в массив.

Для этого я использую этот код

var myregexp = /(<li class="mortadela">)(+?)(<\/li>/;
var match = myregexp.exec(html_text);

Но это не работает для меня.

  • 0
    Вы можете использовать JQuery?
Теги:
tags
exec

1 ответ

1

Если вы можете использовать jQuery (или Zepto.js), ваша жизнь будет 8000+ проще:

var mortadelaValues = [];

$('.mortadela').each(function(){
  var content = $(this).html();

  mortadelaValues.push(content);
});

console.log(mortadelaValues);

Обратите внимание, что я использую $(this).html() для содержимого. Это позволяет получить любую разметку внутри каждого .mortadela. Если вам нужен только текст, вы можете заменить его на $(this).text().

Рабочий пример на JS Bin.

Если вы не можете использовать эти библиотеки, вам понадобится немного больше работы:

var mortadelaValues = [];
var mortadelas = document.getElementsByClassName('mortadela');
var mCount = mortadelas.length;

for( i=0; i < mCount; i++){
  var content = mortadelas[i].innerHTML;
  mortadelaValues.push(content);
}

console.log(mortadelaValues);

Концепция такой же, но мы используем родную document.getElementsByClassName и for, вместо селектора JQuery и .each() функций. Опять же, если вам нужен только текст, а не разметка, вы можете просто заменить innerHTML на textContent.

Рабочий пример на JS Bin.

Будьте предупреждены, что поддержка document.getElementsByClassName ограничена более новыми браузерами (поддержка IE6-8 не поддерживается).

Ещё вопросы

Сообщество Overcoder
Наверх
Меню