0

我在我创建的网站上实施此计算器时遇到问题。我想我使用了错误的 javascript 来创建简单的计算,即以下数学计算:((标价 - rrp)/标价)* 100

请注意,我知道这些值不是数字,请用任何数字替换它们。它仍然不起作用。

这是为了获得折扣相对于列表和 RRP 的百分比值。

请查看 HTML 之前的代码:

 <script type="text/javascript">
   discountFinal(#OriginalPrice, #ListPrice);
 </script>
<div id="discountCode">
   <span id="spanish"></span>
   <span id="spanishtwo">%</span>
</div>

Javascript:

var discountFinal = function (firstly, secondly) {
                var totalfirst = secondly - firstly;
                var totalsecond = totalfirst / secondly;
                var totalthird = totalsecond * 100;
                if (document.getElementById("discountCode").innerHTML === null) {
                    document.getElementById("spanishtwo").innerHTML.replace("%", "")
                } else {
                    document.getElementById("spanish").innerHTML = Math.floor(totalthird / 5) * 5
                }
            };

我认为我没有正确调用 html 中的函数。有人可以帮忙吗?

http://jsfiddle.net/xwzhY/

4

3 回答 3

2

我不确定您遇到的错误,但似乎您在discountFinal定义之前调用了该函数。当您移动呼叫时,它开始工作:

http://jsfiddle.net/bmonty/xwzhY/4/

在 OP 发表评论后进行编辑。

你只需要确保你的discountFinal函数在页面顶部被定义,在它被调用的任何地方之前。

这将起作用:

<script type="text/javascript">
  var discountFinal = function(a, b){};
</script>

<script type="text/javascript">
  var result = discountFinal(1, 2);
</script>

但这会引发错误:

<script type="text/javascript">
  var result = discountFinal(1, 2);
</script>

<script type="text/javascript">
  var discountFinal = function(a, b){};
</script>

要获得一些说明,请在浏览器中查看 HTML 页面上的源代码以查看生成的页面的外观。这应该指出操作顺序混乱的地方。

于 2013-07-22T19:10:30.673 回答
1

如果您在函数存在后调用它,它工作正常:http: //jsfiddle.net/xwzhY/2/

只需确保在代码中声明该函数的时间比使用它的时间早。或者使用函数语句而不是分配给变量的函数表达式来声明它:

function discountFinal(firstly, secondly){

...
于 2013-07-22T19:10:38.937 回答
0

尝试将 "" 放在 perl 变量周围,您需要传递值

于 2013-07-22T19:05:17.397 回答