Поиск нескольких текстовых строк в div и удаление символов HTML
Так что у меня плохо отформатированный div с кучей встроенных CSS с <p>, <font>
и другие теги старой школы. Есть 2 текстовые строки, которые мне нужно взять и поместить в отдельный раздел выше на странице.
В частности, в приведенном ниже HTML-коде мне нужно взять текст после слова "СОСТОЯНИЕ:", но я не хочу HTML-код. Фактический текст отличается на всех страницах, но HTML-код одинаков.
<div class="content" id="content" style="display: block;">
<p></p>
<p align="center">
<strong>
<u>
<font size="5" face="Arial Black" color="#990000">ONE NICE</font>
</u>
</strong>
</p>
<p align="center">
<strong>
<font size="5" face="Windings" color="#000040">MICHELIN</font>
</strong>
</p>
<p align="center">
<strong>
<font size="5" color="#000040">ENERGY MXV4 S8</font>
</strong>
</p>
<p align="center">
<strong>
<font size="5" face="Arial Black">215/55/17</font>
<font size="5" face="Arial, Helvetica, sans-serif"><br/>93V</font>
</strong>
</p>
<p align="center">
<font face="Arial Black">
<strong>
<font color="#990000"><u>CONDITION</u> :</font>
</strong>
<br/>
</font>
<font size="2" face="Arial, Helvetica, sans-serif">
<strong>Approximate tread: 8-9/32<br>About 80-90% of tread life left</strong>
</font>
</p>
<p></p>
</div>
3 ответа
Скажите "Нет" парсингу HTML с помощью регулярных выражений! Вот другой подход, простой и элегантный:
var text = $('p[align]:last').text();
console.log(text.replace('CONDITION :', ''));
Показывает: Примерный протектор: 8-9/32. Осталось около 80-90% срока службы протектора. Вижу скрипку.
ОБНОВИТЬ:
Так как на странице несколько разделов содержимого, я изменил свой код следующим образом:
var texts = [];
$('div.content').each(function() {
texts.push($('p[align]:last font:last', this).text());
});
Смотрите обновленную скрипку.
Этот код должен сделать свое дело.
var found = $('.content').find('p').each(function(index, p){
if($(this).text().indexOf('CONDITION') != -1){
console.log($(this).find('font').last().text());
}
});
Вот мое решение http://jsfiddle.net/Yqsr3/
$(function () {
var conditionElem = $('font');
conditionElem = $.grep(conditionElem, function (e, i){
return $(e).find('u').text() === "CONDITION";
});
var description = $(conditionElem).next().text();
console.log(description);
});