我需要做一些我希望通过一些HTML和其他文本的JavaScript解析的简单文本。
我已经可以获取课程的文字,但我无法从第一个<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>
答案 0 :(得分:1)
试试这个:
var mytext = document.getElementById("street-address").textContent;
或获取HTML:
var myhtml = document.getElementById("street-address").innerHTML;
您应该为需要解析的内容的任何元素添加ID。
更新: IE7和后面不支持textContent所以你需要使用以下内容来支持旧版本的IE:
var myhtml = document.getElementById("street-address").innerText;
答案 1 :(得分:0)
您可以将所有文本节点与...连接在一起
var elem = document.getElementsByTagName('div')[0],
text = elem.textContent || elem.innerText;
或者,您可以通过递归迭代文本节点来自己构建文本...
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;
}