我花了最后几个小时试图调试这个Javascript。第一个if块执行得很好,但是当我尝试执行第二个if语句时,我得到一个“未定义的不是函数”错误消息。
我已经检查了JSLint和JSHint,并尝试将我的部分代码注释掉但无济于事。任何帮助将不胜感激。
var nimbus_char_count = 0;
var nimbus_line_count = 1;
var i = 2;
var j = 2;
//This block executes fine
function set_char(increment) {
//Test success cases
if (increment === 1 && nimbus_char_count < 3) {
nimbus_char_count = nimbus_char_count + 1;
$("#nimbus_char" + (nimbus_char_count - 1)).addClass("nimbus_drop");
} else if (increment === -1 && nimbus_char_count > 0) {
nimbus_char_count = nimbus_char_count - 1;
$("#nimbus_char" + nimbus_char_count).removeClass("nimbus_drop");
} else {
nimbus_flash_red();
}
}
//This block throws a "undefined is not a function"
function set_lines(increment) {
if (increment === 1 && nimbus_line_count < 4) {
nimbus_line_count = nimbus_line_count + 1;
for (i = 2; i >= 0; i = i - 1) {
$().getElementsById("#nimbus_char").addClass("nimbus_drop" + i);
}
} else if (increment === -1 && nimbus_char_count > 1) {
nimbus_char_count = nimbus_char_count - 1;
for (j = 2; j >= 0; j = j - 1) {
$().getElementsById("#nimbus_char").addClass("nimbus_drop" + j);
}
} else {
nimbus_flash_red();
}
}
答案 0 :(得分:3)
$().getElementsById("#nimbus_char")
无效jQuery。
我认为你的意思是$("#nimbus_char")
答案 1 :(得分:0)
这可能是因为你写了getElementsById
(带有 s )而不是getElementById(),这实际上是在文档中,而不是jQuery。
尝试使用与第一个块相同的代码来访问您的元素:
$("#id_goes_here")
或document.getElementById("id_goes_here")