Извлечение текста с помощью Javascript - PullRequest
2 голосов
/ 10 ноября 2011

Мне нужно сделать то, что я ожидаю, это простой синтаксический анализ текста через JavaScript с некоторым HTML и дополнительным текстом.

Я уже могу получить текст для классов, но не могу извлечь текст из первого <div>

<div>NRG Software, LLC.</div>
<div class="street-address">10437 innovation dr #311</div>
<span class="locality">milwaukee</span>,
<span class="region">WI</span>
<span class="postal-code">53226</span>
<div class="country-name">United States</div>

У меня есть еще один кусок, который выглядит следующим образом, и я хотел бы получить Орден #.

<p class="header-tools">
    <a class="button-medium button-medium-grey print-view" href="http://www.zzz.com/your/orders/26565180?show_panel=true" data-stylesheet="receipt-print-receipt.css">
        <span>Print Order</span>
    </a>
</p>
<div class="print-logo print-only">
    <img src="/images/logo-print.png" alt="zzz">
</div>
<h2>Order #26565180 on Dec 7, 2010</h2>

Ответы [ 2 ]

1 голос
/ 10 ноября 2011

Попробуйте это:

var mytext = document.getElementById("street-address").textContent;

или чтобы получить HTML-код:

var myhtml = document.getElementById("street-address").innerHTML;

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

ОБНОВЛЕНИЕ: IE7 и обратно не поддерживают textContent, поэтому для поддержки старых версий IE необходимо использовать следующее:

var myhtml = document.getElementById("street-address").innerText;
0 голосов
/ 10 ноября 2011

Вы можете объединить все текстовые узлы вместе с ...

var elem = document.getElementsByTagName('div')[0],
    text = elem.textContent || elem.innerText;

jsFiddle .

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

var getText = function me(element) {
    var text = '',
        children = element.childNodes,
        childrenLength = children.length;

    for (var i = 0; i < childrenLength; i++) {

        if (children[i].nodeType == 1) {
            text += me(children[i]);

        } else if (children[i].nodeType == 3) {
            text += children[i].data;

        }

    }
    return text;
}

jsFiddle .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...