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++)