gpt4 book ai didi

jQuery 在简单计算中返回 NaN

转载 作者:行者123 更新时间:2023-12-01 04:58:05 24 4
gpt4 key购买 nike

我有以下脚本。当我最初写它时,它运行得很好。然后我加载了该页面,但它已损坏并永久返回 NaN。我能够在控制台中成功运行它,但由于某种原因它无法在网站上正常工作。它在 Rails 应用程序内部运行。

$(document).ready(function(){
$('select').click(function(){
var often = parseInt($('#biohaz_frequency_often').val());
var time = parseInt($('#biohaz_frequency_time').val());
var timeoften = often * time
if(timeoften == 0){
var freq = 0;
}
else if(timeoften <= 2){
var freq = 1;
}
else if(timeoften <= 4){
var freq = 3;
}
else if(timeoften <= 9){
var freq = 6;
}
else if(timeoften > 9){
var freq = 10;
}
var sever = parseInt($('#biohaz_risk_severity').val());
var master = parseInt($('#biohaz_risk_mastery').val());
$('#risk_frequency').html(freq);
$('#risk_total').html(freq * sever * master);
})
})

最佳答案

运行此诊断:

$(document).ready(function(){
$('select').click(function(){
var often = parseInt($('#biohaz_frequency_often').val());
var time = parseInt($('#biohaz_frequency_time').val());
var sever = parseInt($('#biohaz_risk_severity').val());
var master = parseInt($('#biohaz_risk_mastery').val());
alert([often, time, sever, master].join());
});
});

这将告诉您四个变量中哪一个是 NaN。

此外(这可能很重要),$('select').click(...) 相当不寻常。我希望看到 $('select').on('change', ...)。使用 click 时,您的 NaN 更有可能是非数字参与计算的结果。如果没有看到 HTML,我无法确定。

最好的策略是确保所有四个 select 元素都初始化(在 HTML 中)并选择了有效选项,然后编写如下代码:

$(document).ready(function(){
//cache of static jQuery objects
var $$ = {
'often': $('#biohaz_frequency_often'),
'time': $('#biohaz_frequency_time'),
'sever': $('#biohaz_risk_severity'),
'master': $('#biohaz_risk_mastery'),
'frequency': $('#risk_frequency'),
'total': $('#risk_total')
};
$('select').on('change', function(){
var often = parseInt($$.often.val()),
time = parseInt($$.time.val()),
sever = parseInt($$.sever.val()),
master = parseInt($$.master.val()),
ot = often * time,//keep this member name short, it's about to be used 4 times in the next line
freq = (ot == 0) ? 0 : (ot <= 2) ? 1 : (ot <= 4) ? 3 : (ot <= 9) ? 6 : 10;
$$.frequency.html(freq);
$$.total.html(freq * sever * master);
}).trigger('change');//call the handler immediately, with initially selected options
});

关于jQuery 在简单计算中返回 NaN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12943205/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com