使用javascript获取标记之间的文本

使用javascript获取标记之间的文本,javascript,regex,Javascript,Regex,我试图从span标签之间获取价格。我想有一个数组中的所有价格。我似乎无法让它工作,我猜我的正则表达式是不正确的 我正在寻找任何带有“amount”类的span标记,该标记没有其他属性集,只有一个类。例如,£;9.99 输出 ['£;9.99','£;100.00'] *更新* 事实证明,这是一种使用ajax响应resp.fragments['data']的编码 我使用正则表达式,因为它是我以前在JS中没有真正使用过的东西,我想我会有一个剧本。我确实看了很多例子,大约

我试图从span标签之间获取价格。我想有一个数组中的所有价格。我似乎无法让它工作,我猜我的正则表达式是不正确的

我正在寻找任何带有“amount”类的span标记,该标记没有其他属性集,只有一个类。例如,
£;9.99

输出

['£;9.99','£;100.00']

*更新*

事实证明,这是一种使用ajax响应
resp.fragments['data']
的编码

我使用正则表达式,因为它是我以前在JS中没有真正使用过的东西,我想我会有一个剧本。我确实看了很多例子,大约45分钟后没有成功,我想一双新的眼睛可以修复它

@太空人
谢谢你的评论。如果有人问你“家里有医生吗?”,你会站起来说“外面有很多医生。”

你可以用这个代替

var prices=document.getElementsByClassName('amount');
var price_数组=[];
对于(i=0;i
£;123
&磅;3.
&磅;5.

&磅;64
最简单的方法是将其添加到不可见的DOM对象中,然后通过DOM API遍历它

var text  = '<span class="amount">&pound;9.99</span><span class="amount">&pound;9.99</span>'

虽然正则表达式可以实现这一点,但简单地选择
元素并通过函数将其内容映射到数组可能会更容易:

// This would yield an array containing your values
var amounts = Array.prototype.slice
                             .call(document.querySelectorAll('span.amount'))
                             .map(function(a){ return a.innerHTML; });

您可以。

从您给出的示例来看,它似乎工作得很好。
$('span.amount').val()
,不起作用?您有什么理由要为此使用正则表达式吗?简单地以
元素为目标并从每个元素中获取文本可能更容易。如果jQuery是一个选项,还可以使用jQuery选择元素+类
$(“span.amount”)
var text  = '<span class="amount">&pound;9.99</span><span class="amount">&pound;9.99</span>'
var wrapperDiv = "<div style='display:none' id='tmpDiv'>" + text + "</div>";
document.body.innerHTML += wrapperDiv;

var elements = document.querySelectorAll( "#tmpDiv amount" );
var output = Array.prototype.slice.call( elements ).map( function(val){
  return val.innerText;
})
// This would yield an array containing your values
var amounts = Array.prototype.slice
                             .call(document.querySelectorAll('span.amount'))
                             .map(function(a){ return a.innerHTML; });