我试图通过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不太满意。
答案 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