我试图从跨度标签之间获得价格。我想把所有的价格都放在一个数组中。我似乎不能让它工作,我猜我的正则表达式是不正确的。
我正在寻找任何span标签与类的'blog',该标签没有其他属性集,只有一个类。例如<span class="amount">£9.99</span>
var prices = resp.fragments['data'].match(/<span class=\"amount\">(.*?)<\/span>/g)
.map(function(val){
return val;
});
输出[ '£9.99', '£100.00' ]
我试图从跨度标签之间获得价格。我想把所有的价格都放在一个数组中。我似乎不能让它工作,我猜我的正则表达式是不正确的。
我正在寻找任何span标签与类的'blog',该标签没有其他属性集,只有一个类。例如<span class="amount">£9.99</span>
var prices = resp.fragments['data'].match(/<span class=\"amount\">(.*?)<\/span>/g)
.map(function(val){
return val;
});
输出[ '£9.99', '£100.00' ]
- 更新 *
结果发现它是一个编码,响应为resp.fragments['data']
。
我使用正则表达式,因为它是我以前在JS中没有真正使用过的东西,并认为我会有一个发挥。我确实看了很多例子,大约45分钟后没有成功,我想一双新的眼睛会解决它。
3条答案
按热度按时间wlp8pajw1#
虽然正则表达式可以做到这一点,但简单地选择
<span class='amount'>
元素并通过map()
函数将其innerHTML
内容Map到数组可能更容易:你可以see a working example of this demonstrated here。
ct2axkht2#
最简单的方法是将其添加到一个不可见的DOM对象中,然后通过DOM API遍历它
//现在将其附加到DOM对象
另一种方法可以是
split
文本<span class="amount">
,并获得第一个索引后的值演示
xqk2d5yq3#
你可以用这个代替。
你不需要使用正则表达式或jQuery。