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

アレックス・ウェインがすでに言ったことに追加します。

私はあなたのJSコードを表のセルブロックの外に出し、タグが始まる前にヘッダーに入れます。次に、Alex のコードを取得して、「window.onload = function(){ //your code here }」ブロック内に配置し、ページが読み込まれると実行されるようにします。

そして、「document.write()」を使用する代わりに、アレックスのアドバイスに従い、「document.write」行を別の行に置き換えて、「incVat」値をテーブル セルに直接書き込みます。

「incvatValue」のように、値を出力するテーブル セルにカスタム ID を指定します。

<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 に答える