我发现了许多使用jQuery在标题或div中定位特定作品的示例,但我所追求的略有不同。
我正在将Jigoshop用于电子商务网站,并希望将产品价格的小数位小于其他数字。
目前,Jigoshop出口价格如下:
<div class="price">£300.00</div>
但理想情况下,我喜欢这个:
<div class="price">£300.<span class="decimals">00</span></div>
如果有帮助,可以将句号/小数位用作分隔符。
任何帮助将不胜感激!
谢谢,
亚当。
答案 0 :(得分:5)
尝试
$(".price").html(function(i, html){
return html.replace( /(\.\d+)$/, '<span class="decimals">$1</span>')
});
演示:Fiddle
答案 1 :(得分:2)
最简单的方法是
$( ".price" ).html( function( index, oldHtml ){
return oldHtml.replace( /(\d\d)$/, "<span class='decimals'>$1</span>" );
});
编辑:已修复,以便适用于多种价格。所以它与最佳答案相同,只有略微不同的RegExp(可能更快,但我怀疑它会产生很大的不同)
答案 2 :(得分:2)
var price = $('.price').text();
price = price.split('.');
$('.price').html(price[0] + '.<span class="decimals">' + price[1] + '</span>');
但请注意,通过JS修改DOM以存档某些样式是一种不太好的做法!
如果您有多个价格:
$('.price').each(function() {
var price = $(this).text();
price = price.split('.');
$(this).html(price[0] + '.<span class="decimals">' + price[1] + '</span>');
}
答案 3 :(得分:1)
$('div.price').html(function (_, old_html) {
return old_html.substr(0, old_html.indexOf('.')) + '<span class="decimals">' + old_html.substr(old_html.indexOf('.')) + '</span>';
});
<小时/> .html()
答案 4 :(得分:0)
你要做的是非常糟糕练习。但是,这就是你如何做到的。
$('.price').each(function () {
var p = $(this);
var t = p.text().split('.');
var s = $('<span></span>');
s.attr('class', 'decimals');
s.text(t[1])
p.text("");
p.text(t[0] + ".");
p.append(s);
});