Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 变量未传递给函数_Javascript_Jquery - Fatal编程技术网

Javascript 变量未传递给函数

Javascript 变量未传递给函数,javascript,jquery,Javascript,Jquery,我目前有这样做的代码: $('#BoxShadow_1').click(function() { addDivBoxShadow('BoxShadow_1'); }); $('#BoxShadow_2').click(function() { addDivBoxShadow('BoxShadow_2'); }); …等10个类似元素。它很好用 我也在使用JQuery 我想将代码更改为如下内容: for (i = 1; i < 11; i++) { $('#BoxShadow_

我目前有这样做的代码:

$('#BoxShadow_1').click(function()
{
addDivBoxShadow('BoxShadow_1');
});

$('#BoxShadow_2').click(function()
{
addDivBoxShadow('BoxShadow_2');
});
…等10个类似元素。它很好用

我也在使用JQuery

我想将代码更改为如下内容:

for (i = 1; i < 11; i++) {

    $('#BoxShadow_' + i).click(function(){
      addDivBoxShadow("BoxShadow_" + i);
    });

}
(i=1;i<11;i++)的
{
$('#BoxShadow'+i)。单击(函数(){
addDivBoxShadow(“BoxShadow_u”+i);
});
}
挑战在于:

BoxShadow_10分配给所有div,而不是BoxShadow_1、BoxShadow_2等

仅供参考,我试图实现的代码是我在以下URL编写的一个数学游戏:

tinyurl.com/sashamath

提前谢谢。我希望将来能有所贡献

好的,下面是答案,使用“let”语句如下:

for (let i = 1; i < 11; i++) {

    $('#BoxShadow_' + i).click(function(){
      addDivBoxShadow("BoxShadow_" + i);
    });

}
for(设i=1;i<11;i++){
$('#BoxShadow'+i)。单击(函数(){
addDivBoxShadow(“BoxShadow_u”+i);
});
}

循环的问题是典型的“循环中的回调”问题

然而,你根本不需要一个循环。只需使用
this
id
属性即可获得id

function handler() {
  addDivBoxShadow(this.id);
}

$('#BoxShadow_1').click(handler);
$('#BoxShadow_2').click(handler);

或者,如果将
addDivBoxShadow
函数更改为使用
this
获取元素,则可以直接传递它

$('#BoxShadow_1').click(addDivBoxShadow);
$('#BoxShadow_2').click(addDivBoxShadow);
因此现在
addDivBoxShadow
可以使用
this
引用绑定元素,并且它还将接收
事件
对象作为参数


当然,它也可以用一个选择器来完成

$('#BoxShadow_1, #BoxShadow_2').click(addDivBoxShadow);

循环的问题是典型的“循环中的回调”问题

然而,你根本不需要一个循环。只需使用
this
id
属性即可获得id

function handler() {
  addDivBoxShadow(this.id);
}

$('#BoxShadow_1').click(handler);
$('#BoxShadow_2').click(handler);

或者,如果将
addDivBoxShadow
函数更改为使用
this
获取元素,则可以直接传递它

$('#BoxShadow_1').click(addDivBoxShadow);
$('#BoxShadow_2').click(addDivBoxShadow);
因此现在
addDivBoxShadow
可以使用
this
引用绑定元素,并且它还将接收
事件
对象作为参数


当然,它也可以用一个选择器来完成

$('#BoxShadow_1, #BoxShadow_2').click(addDivBoxShadow);

非常感谢。关键是使用:'let'如:for(let i=1;i<11;i++)谢谢。关键是使用:for中的“let”(let i=1;i<11;i++)