将百分比添加到价格字段中货币代码

时间:2015-11-13 13:39:51

标签: javascript jquery

我试图通过javascript向价格字段添加10%,到目前为止我还没有能够,并且希望你们能够提供帮助。

该字段包括货币代码等。

我确实尝试过这方面的事情:

<script type="text/javascript">
    $( document ).ready(function() {
      var Total = $("#cashamount");
      Total.val(Total.val() * 1.1);
    });
</script>

但那不起作用;(

价格字段显示如下。

<span id="cashamount" class="additional xxlarge carrental_total_amount">48,300.00 ISK</span>

将10%的价格加到价格后,应该在这个例子中说:

<span id="cashamount" class="additional xxlarge carrental_total_amount">53,130.00 ISK</span>

欢迎提出任何想法,我真的很感谢这方面的帮助,因为我觉得它很简单,但我对Javascripting不太满意。

2 个答案:

答案 0 :(得分:1)

var x = $("#cashamount").html(); // Fetching the value
var xSplit = x.split(" "); // Splitting the currency and ammount and storing it in array.

var intAmmt = +xSplit[0].replace(/,/g , ""); // Removing comma and Making it a integer
var newAmmt = intAmmt*1.1; // Incrementing by 10%    
var y = newAmmt.toLocaleString() + " " + xSplit[1]; // Adding the currency sign with a space
$("#cashamount").html(y); // Setting the html;

所以你可以为此创建一个函数:

function updateVal(elem){
    var x = elem.html(); // Fethching the value
    var xSplit = x.split(" "); // Splitting the currency and ammount and storing it in array.

    var intAmmt = +xSplit[0].replace(/,/g , ""); // Removing comma and Making it a integer
    var newAmmt = intAmmt*1.1; // Incrementing by 10%    
    var y = newAmmt.toLocaleString() + " " + xSplit[1]; // Adding the currency sign with a space
    elem.html(y); // Setting the html;
}

并将其用作:

$(document).ready(function(){
   updateVal($("#cashamount"))
});

答案 1 :(得分:1)

首先:(下面的解决方案)

  

.val()方法主要用于获取表单元素的值   例如input,select和textarea。在元素的情况下,   .val()方法返回一个包含每个选定选项的数组;如果不   选择了该选项,它返回null, jQuery docs

     

.text()方法不能用于表单输入或脚本。设置或   获取input或textarea元素的文本值,使用.val()   方法。要获取脚本元素的值,请使用.html()方法,   的 jQuery docs

所以,接下来会有一个解决方案:

var Total = $("#cashamount");
var totalNumber = Number(Total.text().replace(/[^0-9\.]+/g,""));
Total.text((totalNumber * 1.1).toFixed(2));
//Add currency to this

此处JsFiddle