0

我正在尝试在产品页面上显示含税价格。价格显示在 [OurPrice] 中,因此我需要将显示的价格(例如 0.95 英镑)乘以 1.2 并以英镑显示价格。这是我尝试使用的代码,但是,它不显示计算出的价格。我想用数字前面的£符号显示它。

    <table cellspacing="1" cellpadding="0" border="0" >
  <tbody><tr>
    <td class="retail-price" valign="top" nowrap="">[RetailPriceTitle]</td>
    <td width="100%">[RetailPrice]</td>
  </tr><tr>
    <td class="our-price" valign="top" nowrap="">Our Price:</td>
    <td width="100%"><span id="op">[OurPrice]</span></td>
  </tr>
  <tr>
    <td class="incvat" valign="top" nowrap="">Inc Vat</td>
    <td class="incvat">

<script type="text/jscript">
var ours = document.getElementById("op").value;
  document.write (£(ours *1.2))

    </script>
</td>
  </tr>

  </tbody>
</table>
4

3 回答 3

1

这不是语法上有效的 javascript。尝试这样的事情:

var ourPrice = document.getElementById("op").innerHTML; // fetch the price
ourPrice = ourPrice.replace('£', ''); // remove pound character
ourPrice = parseFloat(ourPrice); // convert price from a string to a number
var incVat = ourPrice * 1.2; // calculate the price with tax
document.write('£' + incVat); // write the result

http://jsfiddle.net/RjWMK/


但是,此代码还有其他问题,这些问题本身就是其他主题,超出了此答案的范围。但作为一项研究练习:

  1. 不要使用document.write(). 而是运行一个脚本,在整个页面加载后找到该值,然后将该值插入到正确节点的内容中。

  2. 使用类似的东西number.toFixed(2)或货币格式库正确格式化结果。

于 2013-05-10T00:57:14.130 回答
0

我要补充一下 Alex Wayne 已经说过的话。

我会将您的 JS 代码放在表格单元块之外,然后在标签开始之前将其放在标题中。然后我将 Alex 的代码放入“window.onload = function(){ //your code here }”块中,以便在页面加载后执行。

然后我不使用“document.write()”,而是按照亚历克斯的建议,用另一行替换“document.write”行,这会将“incVat”值直接写入表格单元格。

为要打印值的表格单元格提供自定义 ID,例如“incvatValue”。

<td class="incvat" id="incvatValue"> </td>

然后,编写这行代码:

document.getElementById("incvatValue").innerHTML = incVat;

完成后,您的 JS 应如下所示,并且不应位于表格单元格内:

<script type="text/javascript">
window.onload = function(){
    var ourPrice = document.getElementById("op").innerHTML; // fetch the price
    ourPrice = ourPrice.replace('£', ''); // remove pound character
    ourPrice = parseFloat(ourPrice); // convert price from a string to a number
    var incVat = ourPrice * 1.2; // calculate the price with tax
    document.getElementById("incvatValue").innerHTML = incVat; // write the result
}
</script>

<td class="incvat" id="incvatValue"> </td>

顺便说一句,您可以将“incvatValue”替换为任何内容,只需确保表格单元格中的 ID 与 JS 中调用的 ID 匹配即可。

于 2013-05-10T01:27:16.057 回答
0

根据亚历克斯的回答,你需要这样

<td width="100%">£10.0</td>
于 2013-05-10T01:10:19.607 回答