努力理解为什么我的全局变量丰富和丰富abunbancetwo不会在if语句之外的控制台中显示?我可以看到值的变化取决于if语句逻辑,如果我在if语句中的console.log但是在if之外什么都没有?我应该看到每个变量的整数在1-4之间。
$('#selector1').change(function() {
var selector1 = $('#selector1').val()
if (selector1 % 1 == 0) {
if (!selector1) {
$('#ValOne').val('');
abundanceone = 0;
console.log (abundanceone);
return false;
}
if (selector1 == 0) {
$('#ValOne').val('');
$('#selector1').val('');
abundanceone = 0;
console.log (abundanceone);
return false;
}
if (selector1 >= 1 && selector1 <= 9) {
$('#ValOne').val(1);
abundanceone = 1;
return false;
}
if (selector1 >= 10 && selector1 <= 99) {
$('#ValOne').val(2);
abundanceone = 2;
console.log (abundanceone);
return false;
}
if (selector1 >= 100 && selector1 <= 999) {
$('#ValOne').val(3);
abundanceone = 3;
console.log (abundanceone);
return false;
}
if (selector1 >= 1000) {
$('#ValOne').val(4);
window.abundanceone = 4;
return false;
}
} else {
alert('Please only enter a whole number');
}
console.log (abundanceone +99);
console.log (window.abundanceone +999999);
});
$('#selector2').change(function() {
var selector2 = $('#selector2').val()
if (selector2 % 1 == 0) {
if (!selector2) {
$('#Valtwo').val('');
abundancetwo = 0;
return false;
}
if (selector2 == 0) {
$('#Valtwo').val('');
$('#selector2').val('');
abundancetwo = 0;
return false;
}
if (selector2 >= 1 && selector2 <= 9) {
$('#Valtwo').val(1);
abundancetwo = 1;
return false;
}
if (selector2 >= 10 && selector2 <= 99) {
$('#Valtwo').val(2);
abundancetwo = 2;
return false;
}
if (selector2 >= 100 && selector2 <= 999) {
$('#Valtwo').val(3);
abundancetwo = 3;
return false;
}
if (selector2 >= 1000) {
$('#Valtwo').val(4);
abundancetwo = 4;
return false;
}
} else {
alert('Please only enter a whole number');
}
console.log(abundancetwo);
});
alert(abundanceone + abundancetwo);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" name="categorySelect1fromDB" id="ValOne" value="Abundance" class="DropChange" disabled>
<br>
<input maxlength="4" type="text" placeholder="Estimated Quantity" id="selector1" name="number_of_taxon1" />
<br>
<br>
<input type="text" name="categorySelect1fromDB" id="Valtwo" value="Abundance" class="DropChange" disabled>
<br>
<input maxlength="4" type="text" placeholder="Estimated Quantity" id="selector2" name="number_of_taxon1" />
&#13;
答案 0 :(得分:0)
我在全局范围内明确声明了你的变量并且它可以正常工作。
看一看。 https://jsfiddle.net/3tnzkmnc/
var abundanceone =0;
var abundancetwo =0;
对于if loop
之外的控制台日志,代码永远不会到达那里,因为每个return statements
中都有if condition
。它到达if loop
之外的控制台日志的唯一时间是它进入else condition code
,但此时你没有设置变量来查看控制台日志中的任何内容。
答案 1 :(得分:0)
abundanceone
和abuancetwo
包含在函数中,因此在调用函数之前不会定义它们。调用这些函数后,您将可以全局访问这些变量,或者您可以在function
之外声明这些变量。