Поиск нескольких текстовых строк в 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);
});
Другие вопросы по тегам