【发布时间】:2018-11-14 19:04:52
【问题描述】:
我有一个全局变量:
var a;
我将我的 onclick 函数串联到我的 html div PHP 中:
$number =' <div onclick="select(this,'."'250000'".');" > ';
$number .= ...etc... //php function
$number .='</div>';
将字符串插入 div 值 onclick (button) :
function select (price){
if ($(id).attr('class') == "table2") { //unselect button
$(id).attr('class', 'table1');
var price2=document.getElementById("price").value.split(",");
var removePrice = price;;
var price3 = jQuery.grep(price2, function (value) { return value != removePrice;});
document.getElementById("price").value = price3;
if (n.length == 0) i = 0;
} else {
$(id).attr('class', 'table2'); //select button
if (i == 0) {
document.getElementById("price").value = price;
a = Number(document.getElementById("price").value); //assign the value into a
i = 1;
} else {
$(id).attr('class','table3');
}
}
从那里,我有复选框 HTML :
<div id="CourseMenu"><input type="checkbox" value="50000" />  Ekstra Bed <input type="checkbox" value="50000" />  Breakfast</div>
之后,我有 另一个 函数来求和 2 个 div 值(复选框):
$(function($) {
var sum = 0;
$('#CourseMenu :checkbox').click(function() { sum = 0;
$('#CourseMenu :checkbox:checked').each(function(idx, elm) {
sum += parseInt(elm.value, 10);
});
var b = parseInt(a||0, 10) + parseInt(sum||0, 10);
$('#sum').html(b); //<--resulted NaN when sum with button
document.getElementById("price").value=b; //<-- assign b as div value
});
});
目的是将总价格(按钮和复选框)汇总为div值
<input type="hidden" id="price" name="price" value="" />
当函数只对 checkbox 求和时,它可以正常工作,但是当我尝试使用 button(全局变量)显示总和时,它会导致 NaN
我想我已经将字符串转换为数字了,我的代码有问题吗?
【问题讨论】:
-
var value = document.getElementById("price").value * 1 -
另外,不要将 jquery
$("#..与 javascriptdocument.getElementById(混合使用。 -
很可能
a(漂亮的变量名...)在到达求和函数之前已经是NaN。你能做一个小提琴显示它不工作吗? -
select在哪里 - 请显示更多 HTML 和相关脚本 -
在添加前检查
a的类型..typeof(a)
标签: javascript php jquery