Javascript 循环的Coffescript不使用已创建的其他变量
因此,我对使用coffescript还不熟悉,我不知道自己做错了什么。我使用while循环使其工作,但我只想知道如何使用for循环使其工作。循环只运行一次,并返回一个错误“UncaughtTypeError:无法读取未定义的属性'style'” 我的cs代码如下所示:Javascript 循环的Coffescript不使用已创建的其他变量,javascript,for-loop,coffeescript,Javascript,For Loop,Coffeescript,因此,我对使用coffescript还不熟悉,我不知道自己做错了什么。我使用while循环使其工作,但我只想知道如何使用for循环使其工作。循环只运行一次,并返回一个错误“UncaughtTypeError:无法读取未定义的属性'style'” 我的cs代码如下所示: function = (col) -> for squares in squares squares.style.background = col js输出: changeColor = funct
function = (col) ->
for squares in squares
squares.style.background = col
js输出:
changeColor = function(col) {
var j, len;
for (j = 0, len = squares.length; j < len; j++) {
squares = squares[j];
squares.style.background = col;
}
};
changeColor=函数(col){
var j,len;
对于(j=0,len=squares.length;j
正在接受js输出:
changeColor = function(col) {
var j;
for (j = 0; j < squares.length; j++) {
squares[j].style.background = col;
}
changeColor=函数(col){
var j;
对于(j=0;j
据我所知,转换后的js是正确的,但它不会接受声明的其他变量。尽管如此,我可能是错的。谢谢您的帮助。通常,如果Coffeescript(以及Javascript)向您发送了一条错误消息,其中包含
未定义的
,而您的调用目标不存在
所以在你的例子中,它说,squares
是未定义的
,未定义的
确实没有名为background
的属性。我怎么知道这一点呢?仅仅是因为使用的唯一一行wherystyle
squares.style.background = col
因此,style
在squares
上被调用,squares
未定义
现在,下一个问题显然是为什么是squares
未定义。我猜:在您的文档中没有类squares
的html元素。只需执行以下操作即可
squares = document.querySelectorAll(".square")
console.log(squares)
要查看对
querySelectorAll
的调用产生了什么你是说对于正方形中的正方形
?@muistooshort Hi.抱歉。但我不这么认为。“squares”是我在cs/js中使用的变量,“squares”是我在html中使用的类。我尝试使用square并呈现了以下结果。(i=0,len=squares.length;i
但是你说的是,基本上,用于x中的x
,这是没有意义的。你不希望循环变量的名称与迭代的名称相同。因此,我建议对平方中的平方使用,而不是对平方中的平方使用。嗨,谢谢你的回答。在但是我的html。很抱歉,我对我的文件使用了相当混乱的命名。Chrome控制台:[div.square,div.square,div.square,div.square,div.square]
squares = document.querySelectorAll(".square")
console.log(squares)