从一大堆html中找出一个数字

Grab a single digit out of a big mess of html

本文关键字:一个 数字 一大堆 html      更新时间:2023-09-26

我从文档中抓取一个div:

var myTotal = window.document.getElementById('status').innerHTML;

返回一大堆HTML

<div id="foo"> 
<a href="bar" onclick='_gaq.push(["_trackEvent", "The", "Total",])'>
<img src="foo.gif" alt="foo" height="22px;/" width="15px;"></a> 
</div> 
<a href="bar" onclick='_gaq.push(["_trackEvent", "The", "Total",])'> 
MY TOTAL: 
<span style="font-size: 12px; color: #F3A428; font-weight:normal;"> 8 item(s) </span>
</a> 

谁能告诉我如何在span中获取数字,在这个例子中是8 ?

你能给span一个id并直接引用它吗?

如果没有,那么这个正则表达式应该返回span中的数字:/<span[^>]+>'s*('d+)/

我假设div中只有一个span

这应该对你有帮助

var myTotal = window.document.getElementById('status').getElementsByTagName('span')[0].innerHTML
myTotal = myTotal.replace(/(^'d+)(.+$)/i,'$1'); 

在jQuery中,即使没有内部HTML,它也会是这样:

var items = $("#status span").first().text();
items = parseInt(items, 10);
alert(items);   // 8

如果你控制HTML,建议在包含结果的span上放一个唯一的ID,这样更容易检索,不依赖于它周围的结构,或者更好的是,把它作为一个JS变量输出到页面中,你可以直接读取,而不必处理表示。

可以在jsFiddle中看到:http://jsfiddle.net/jfriend00/UqcxS/

您也可以尝试使用innerText

window.document.getElementById('status').innerText.replace(/[^0-9]/gi, '');
http://jsfiddle.net/X9ffE/

使用jQuery代替,它有很多函数可以帮助您找到页面中的特定元素。此外,您可能希望为您的元素添加标识,如class和id。