从一大堆html中抓取一个数字

时间:2011-07-15 07:08:58

标签: javascript regex

我从文件中抓取一个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> 

你们其中一个表达向导能告诉我如何抓住跨度中的数字,在这个例子中是8吗?

5 个答案:

答案 0 :(得分:2)

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

如果没有,则此正则表达式应返回范围中的数字:/<span[^>]+>\s*(\d+)/

我假设div中只有一个跨度。

答案 1 :(得分:1)

这应该可以帮到你

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

答案 2 :(得分:1)

在jQuery中,甚至没有得到内部HTML就是这样:

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

如果您控制HTML,建议在包含结果的范围上放置一个唯一ID,然后更容易检索并且不依赖于它周围的结构或者更好,将它作为输出输出到页面中JS变量,你可以直接阅读,而不必处理演示文稿。

在这里看到一个jsFiddle:http://jsfiddle.net/jfriend00/UqcxS/

答案 3 :(得分:0)

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

答案 4 :(得分:0)

您也可以尝试使用innerText

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

http://jsfiddle.net/X9ffE/