Javascript:If语句-两个变量?
我试图检查level是什么,degree是什么,那么total是某个字段的值。该代码仅适用于示例1,这使我认为我需要变量中的度数 示例:Javascript:If语句-两个变量?,javascript,jquery,if-statement,input,conditional,Javascript,Jquery,If Statement,Input,Conditional,我试图检查level是什么,degree是什么,那么total是某个字段的值。该代码仅适用于示例1,这使我认为我需要变量中的度数 示例: level=1;度=终端;1_T=205 level=2;度=非终结符;2\u NT=230 我做错了什么?我想知道是否有办法定义第二个变量,就像我在第3行对level所做的那样,可能应该有定义度的东西。你必须声明你的变量degree,否则它将失败,因为如果在使用它之前没有定义degree,它的值将未定义 $(function(){ $(".level
level=1;度=终端;1_T=205
level=2;度=非终结符;2\u NT=230
我做错了什么?我想知道是否有办法定义第二个变量,就像我在第3行对level所做的那样,可能应该有定义度的东西。你必须声明你的变量
degree
,否则它将失败,因为如果在使用它之前没有定义degree,它的值将未定义
$(function(){
$(".level input, .degree input").change(function(){
var level = $(".level input").val();
var degree = $(".degree input").val();
// Perhaps you want (level=="1" && degree=="Terminal") ?
if (level == "1" || degree == "Terminal"){
$(".total input").val($(".1_T input").val());
}
else if (level == "2" || degree == "NonTerminal") {
$(".total input").val($(".2_NT input").val());
}
});
})
您的代码应该是:
$(document).ready(function(){
$(".level input, .degree input").change(function(){
var level = $(".level input").val();
var degree = $(".degree input").val();
if (level == "1" || degree == "Terminal"){
$(".total input").val($(".1_T input").val());
}
else if (level == "2" || degree == "NonTerminal") {
$(".total input").val($(".2_NT input").val());
}
});
})
- 第2行:更改了jQuery选择器。您的只匹配第一个字符串->
“.level input”
,然后不计算度是否更改
- 第4行:我们定义了变量degree以供以后使用
为什么它适用于示例1?
javascript布尔操作是惰性检查的。由于您的第一个测试level==“1”
立即为真,所以不管是否定义了degree
。但在例2中,第一次测试失败,并且没有定义度变量。什么是$(“.level input”&&&“.degree input”)
变量度在哪里?根据您的语句if(level==“1”| | degree==“Terminal”){
应该是if(level==“1”&°ree==“Terminal”){
@j08691我想象OP想要连接一个基于两个不同选择器的更改处理程序,即$(.level input,.degree input”)。更改(…)
我是javascript新手,正在努力学习-没有理由否决我的问题伙计们:)我感谢任何帮助!@Pugazh这就是我不确定的-放在哪里。@j08691正如Phrogz回答的那样,我需要使用基于级别和学位输入的更改处理程序。否决是因为您编写的代码无法工作,因为第2行。(同时,仅供参考,“声明”和“示例”两个词拼错了。)嗨,Darius,谢谢你的回复-我在发布之前试过了,但没有成功:(第2行的好主意!嗨,Phrogz,我知道你在那里做了什么,是的,它应该是&。即使有了这个更改,它仍然不起作用-选择任何级别都会预设1_T值。@Nestalna然后你必须调试你的代码。在Chrome调试器中设置断点。检查变量的值,并将它们与你的期望值进行比较。Step thro实时查看您的代码,并问自己“为什么计算机会做出这样的选择?”您的值中是否有空格使字符串不完全相同?欢迎来到Stack Overflow,也欢迎来到软件开发。您的大部分工作是学习如何像计算机一样思考,以及如何了解计算机在做什么。向他人寻求帮助是一个好主意,但不是唯一的前进方向。谢谢或者你的建议和回复Phrogz,我已经做了好几天了,所以我想我会问。故障排除非常棒,我会继续做,我只是不太懂javascript,不知道在哪里以及如何添加度变量。我会在找到答案后报告。如果你不知道如何使用Google Chrome调试器,我强烈建议你让您阅读并熟悉它(特别是设置断点、使用控制台计算表达式以及单步执行代码)。
$(document).ready(function(){
$(".level input, .degree input").change(function(){
var level = $(".level input").val();
var degree = $(".degree input").val();
if (level == "1" || degree == "Terminal"){
$(".total input").val($(".1_T input").val());
}
else if (level == "2" || degree == "NonTerminal") {
$(".total input").val($(".2_NT input").val());
}
});
})