我正在使用SMATY模板引擎构建电子购物网站。在我的viewCart页面中,我使用javascript计算了符合数量的单个商品的价格,但无法计算总价值。
{foreach name = feach item = k from = $res key = ind}
<!-- PRODUCT INFO -->
<div class="cleaner_h20"> </div>
<div id="iteminfo">
<span class="styleblue">{$k->brand} {$k->model}</span>
</div>
<div id="itemsmall">
Rs. <span id="pro_prc{$ind}">{$k->price}</span>
</div>
<div id="itemsmall">
<select id="qty{$ind}" name="qty" onchange="change_price('{$ind}')">
<option name="1" value="1">1</option>
<option name="2" value="2">2</option>
<option name="3" value="3">3</option>
<option name="4" value="4">4</option>
</select>
</div>
<div id="itemsmall_long"> <a href="#"><img src="{$path_css}images/remove.png" /></a>
</div>
<div id="itemsmall">
Rs.<span id="prc{$ind}"> {$k->price}</span>
</div>
<div class="cleaner_h20"> </div>
{literal}
<script>
function change_price(ind)
{
var y=document.getElementById("pro_prc"+ind).innerHTML;
//alert(y);
var z=document.getElementById("qty"+ind).value;
// alert(z);
x=y*z;
// alert(x);
document.getElementById("prc"+ind).innerHTML=x;
}
</script>
{/literal}
{/foreach}
以上警告显示NaN。我很迷惑 。可能是我的逻辑不正确。
答案 0 :(得分:0)
使用parseInt或parseFloat将字符串转换为整数,然后再乘以它们:
function change_price(ind)
{
var y=parseInt(document.getElementById("pro_prc"+ind).innerHTML);
//alert(y);
var z=parseInt(document.getElementById("qty"+ind).value);
// alert(z);
x=y*z;
// alert(x);
document.getElementById("prc"+ind).innerHTML=x;
}
答案 1 :(得分:0)
我认为你需要解析字符串。
var y=document.getElementById("pro_prc"+ind).innerHTML
var y1=parseFloat(y).toFixed(4);
var z=document.getElementById("qty"+ind).value;
var z1=parseFloat(z).toFixed(4);
答案 2 :(得分:0)
因为代码中的y和z代表String,所以你应该这样做:var y = parseInt(y);
和var z = parseInt(z)
;