2012-07-17 21 views
1

所以这里是场景: 我有一堆类似“价格”的跨度:12,99€jQuery替换字符串中的字符和符号在每个div中,逗号由€和€为空

我需要在昏迷后分割美分,所以我可以用css来设计风格 - >完成了,美分得到了自己的分类“美分”

现在我试图用欧元代替昏迷“,”欧元符号,并删除欧元符号结束'取代它没有,空)

我希望它是有道理的,这里是一个例子...:

现在它是如何:12,99€ 和 我需要什么:12€99

我的代码现在:

<!-- the html part CANNOT BE MODIFIED --> 
<span class="price">29,49€</span> 

<script> 
jQuery(".price").each(function() { 
var newText = jQuery(this).text().split(",").join("</span>,<sup class='cents'>"); 
newText = "<span class='euros'>" + newText + "</sup>"; 
jQuery(this).html(newText); 
}); 

// Tryed to replace euro symbol by nothing but doesn't work // 
var value = jQuery(".cents").val()+""; 
value.replace("€", ""); 
var val = jQuery(".cents").val(); 
</script> 

我肯定会很感激,如果有人可以帮助我在这里因为我真的想学习如何实现这一点。它看起来并不复杂,但不能让它工作,这是令人沮丧的。

+0

'.VAL()'是表单元素,你应该使用'的.text()'来代替。 – kapa 2012-07-17 20:00:46

回答

2

如何使用以下代替:

$(".price").html(function(i, val) { 
    val = val.split(","); 
    return "<span class='euros'>" + val[0] + "</span>" + "€" + 
     "<sup class='cents'>" + val[1].replace("€", "") + "</sup>"; 
}); 

DEMO:http://jsfiddle.net/8da54/11/

+0

对于清晰且真正可读的代码+1 ... – 2012-07-17 20:03:44

+1

谢谢,尽量让它更短,但它似乎也输出html标签?看这里:http://jsfiddle.net/8da54/10/ – mlclm 2012-07-17 20:15:06

+0

当你返回字符串与HTML到'文本'它将显示为字符串。 – 2012-07-17 20:16:09

2
$(".price").text(function(i, oldtext){ 
    return oldtext.replace("€","").replace(",","€") 
}); 

http://jsfiddle.net/8da54/9/

+0

+1清洁剂,在没有分割/连接的情况下应该更快。 – davidethell 2012-07-17 20:04:20

+0

不错,这种技术也起作用。感谢您贡献Esailija! – mlclm 2012-07-17 20:32:02

1

你并不需要使用replace,您可以使用slicesubstr

$(".price").html(function(i, oldVal) { 
    var value = oldVal.split(","); 
    return "<span class='euros'>" + value[0] + "€</span>" + 
     "<sup class='cents'>" + value[1].slice(0, -1) + "</sup>"; 
}); 

demo

+0

非常棒,它的工作完美。非常感谢你。我会向你学习。 – mlclm 2012-07-17 20:26:31

+0

@mlclm不客气。 :) – 2012-07-17 20:27:36

相关问题