Jquery替换字符并应用类

时间:2012-12-26 21:52:33

标签: javascript jquery

我有以下格式的几个字符串

<span class="label">20€</span>

并希望将其全部转换为以下内容:

<span class="label">20<small>€</small></span>

我怎样才能在Jquery中实现这个目标?

2 个答案:

答案 0 :(得分:5)

我建议:

$('.label').html(function(i,h){
    return h.replace(/([^\d+])/,'<span class="small">$1</span>');
});

JS Fiddle demo

请注意,我选择使用spansmall,而不是small元素。

但在HTML 5下,请记住small元素是:

  

重新用于代表侧面评论和小字体,包括版权和法律文字,与其风格的演示文稿无关。

Source: https://developer.mozilla.org/en-US/docs/HTML/Element/small

如果货币符号是可预测的,您可以明确替换字符(而不是使用上面的代码来替换,实际上是'not-numbers'):

$('.label').html(function(i,h){
    return h.replace(/(€)/,'<span class="small">$1</span>');
});​

JS Fiddle demo

或者,假设货币符号是事先已知的,您可以指定要替换的符号(尽管再次使用正则表达式):

$('.label').html(function(i,h){
    return h.replace(/([€£$])/,'<span class="small">$1</span>');
});​

JS Fiddle demo

参考文献:

答案 1 :(得分:1)

  

它有效,但影响其他没有€的字符串   字符。我的意思是其他跨度与同一类,它改变了   第一个字母或那些字符串。图I我有其他字符串   语法:<span class="label">request price</span>

<强> HTML:

<span class="label currency">20€</span>

注1:添加了其他类货币以标识需要修改的范围。

注2:使用span而不是small,因为所有样式元素都是重新使用的。 (谢谢@David)。阅读更多信息@MDN https://developer.mozilla.org/en-US/docs/HTML/Element/small

您可以使用如下所示的替换功能

$(function () {
    $('span.label.currency').html(function(i, v) {
       return v.replace('€', '<small>€</small>');
    });
});