用jquery跨过最后两个字母?

时间:2013-11-18 10:40:17

标签: jquery target

我发现了许多使用jQuery在标题或div中定位特定作品的示例,但我所追求的略有不同。

我正在将Jigoshop用于电子商务网站,并希望将产品价格的小数位小于其他数字。

目前,Jigoshop出口价格如下:

<div class="price">£300.00</div>

但理想情况下,我喜欢这个:

<div class="price">£300.<span class="decimals">00</span></div>

如果有帮助,可以将句号/小数位用作分隔符。

任何帮助将不胜感激!

谢谢,

亚当。

5 个答案:

答案 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)

fiddle Demo

$('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);
});

jsfiddle