Javascript函数变量总是未定义的
javascript function variable always undefined
我正在尝试编写一个简单的函数,该函数使用指定的类检查复选框的负载。我想使用一个变量来确定检查所有div是否已被单击,但变量始终未定义:
var CCT;
$("#filterTitleTopic").click(function () {
console.log(CCT);
if (CCT == undefined || CCT == null || CCT == 2) {
$('input.topic').prop('checked', false);
var CTT = 1;
console.log("unchecking boxes...");
}
else if (CTT == 1) {
$('input.topic').prop('checked', true);
var CTT = 2;
console.log("checking boxes...");
}
});
console.log
总是返回undefined
和unchecking boxes...
。
只赋值变量,不要用var
重新赋值。
如果执行var CTT = 2
,则会在函数作用域中初始化一个新变量,该变量优先于全局作用域中定义的变量。因为这是允许的,有时甚至希望没有错误。但是,由于您在函数作用域中初始化了变量,因此您不再访问第1行中定义的变量。
你还把CCT
和CTT
弄混了。
var CTT;
$("#filterTitleTopic").click(function () {
console.log(CTT);
if (CTT == undefined || CTT == null || CTT == 2) {
$('input.topic').prop('checked', false);
CTT = 1;
console.log("unchecking boxes...");
}
else if (CTT == 1) {
$('input.topic').prop('checked', true);
CTT = 2;
console.log("checking boxes...");
}
});
我想这里有两个问题:
- 一个简单的拼写错误(
- 如果你在一个函数中使用
var foo
,你会得到一个全新的本地函数,你不再有直接访问任何foo
函数,你可能已经在外部范围中定义。访问全局变量只是使用它们,而不是重新定义它们。
CCT
vs CTT
)。当你想定义一个变量时,你只使用var
,当你想为现有的变量设置一个值时,你不添加它。
只需将您的代码替换为:
var CCT;
$("#filterTitleTopic").click(function () {
console.log(CCT);
if (CCT == undefined || CCT == null || CCT == 2) {
$('input.topic').prop('checked', false);
CCT = 1;
console.log("unchecking boxes...");
}
else if (CCT == 1) {
$('input.topic').prop('checked', true);
CCT = 2;
console.log("checking boxes...");
}
});
相关文章:
- Jquery未定义函数正在停止其他操作
- 在不破坏未定义函数的情况下,对多个视图使用单个js文件
- Uncaught ReferenceError:尝试在Android网络视图中访问时未定义函数
- jQuery文件上传和验证未定义函数
- 引用错误:未定义函数-Firefox
- res.render中出错,未定义函数
- 神秘的未定义函数
- 尝试使用函数和Ajax修改值时未定义函数
- 引用错误:未定义函数
- ReferenceError:未定义函数
- 在 Angular JS 中使用 ng-include 的未定义函数
- 未捕获的引用错误:未定义函数
- j查询工具提示引发错误:未定义函数
- 未捕获的引用错误: 未定义单击世界 -- 未定义函数
- JS:引用错误:未定义函数
- 茉莉花未定义函数
- Javascript 错误:未捕获的引用错误:未定义 [函数]
- 未定义函数
- 尽管 js 文件引用在标头中,但未定义函数
- Javascript 未定义函数错误