2013-05-10 3 views
0

Я пытаюсь показать цену с учетом налога на странице продукта. Цена отображается в [OurPrice], поэтому мне нужно будет вывести отображаемую цену (например, 0,95 фунта стерлингов), умножить ее на 1,2 и отобразить цену в фунтах. Вот код, который я пытаюсь использовать, однако он не отображает расчетную цену. Я хотел бы показать это символом £ перед номером.Рассчитать налог с цены, отображаемой в таблице HTML

<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> 

ответ

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) или библиотеку форматирования валют.

0

По словам Алекса ответ, вы должны поставить как этот

<td width="100%">£10.0</td> 
+0

Какая альтернатива была бы document.write()? И какой код я буду использовать, чтобы найти значение после загрузки страницы? –

+0

@ShuliSampson, вы можете использовать JQuery '$ (document) .ready (function() {// получить значение});' – Raymond

0

я собираюсь добавить к тому, что Алекс Уэйн уже сказал.

Я бы взял ваш код JS вне блока ячейки таблицы и поместил его в заголовок до начала тега. Затем я возьму код Алекса и поставлю его внутри блока «window.onload = function() {// ваш код здесь}», чтобы он выполнялся после загрузки страницы.

И вместо того, чтобы использовать «document.write()», я следовал совету Алекса и заменял строку «document.write» другой строкой, которая будет записывать значение «incVat» непосредственно в ячейку таблицы.

Дайте пользовательский идентификатор ячейке таблицы, где вы хотите напечатать значение, например «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» на что угодно, просто убедитесь, что идентификатор в ячейке таблицы совпадает с идентификатором, вызываемым в JS.

+0

Спасибо за вашу помощь - он работает, если скрипт £ 10.0, момент, когда я меняю его на [OurPrice] (Коду необходимо вытащить и отобразить цену из нашей базы данных на сайте), я получаю NaN .... –

+0

В этом случае, если вы знаете, что в поле будет «[OurPrice]», попробуйте вставить эту строку кода после первой строки: if (ourPrice == «[OurPrice]») {ourPrice = '0'; } – drumwolf

 Смежные вопросы

  • Нет связанных вопросов^_^