这是一项棘手的任务。我的价格表如下:
<span class="price">10.99€/span>
<span class="price">1.99€/span>
我需要将其转换为此
<span class="price">10<span class="decimal">.99</span></span>
<span class="price">1<span class="decimal">.99</span></span>
到目前为止,这是我如何处理这个问题
$(".price").each(function() {
var PriceArray = ($(".price").text());
var re = /\s*€\s*/
var PriceArraySplit = PriceArray.split(re) // I remove Euro sign
});
此外,据我所知,我需要将每个数字按十进制分割并将它们存储在数组中,然后使用该数组中的新值替换值。
这就是我大脑溢出的地方。
答案 0 :(得分:3)
试一试:
$(".price").each(function(){
var $this = $(this),
PriceArray = $this.text().split('.');
$this.html(PriceArray [0]+'<span class="decimal">.'+PriceArray [1].replace('€','')+'</span>');
})
答案 1 :(得分:1)
这是我想到的第一个 第二个方式:
$("span.price").html(function(i,oldHtml) {
return oldHtml.replace(/(\.\d+)€?/,'<span class="decimal">$1</span>');
});
演示:http://jsfiddle.net/tAHW3/1/
应该是相当不言而喻的;如果没有,请为.html()
以及.replace()
和JS regular expressions阅读一些doco应该有所帮助。
答案 2 :(得分:0)