gpt4 book ai didi

Javascript 数组未按预期工作

转载 作者:行者123 更新时间:2023-11-30 05:56:36 25 4
gpt4 key购买 nike

我是 js/jquery 的新手。对于 ID 为 check$ 的每个复选框(其中 $ 是一个序列号),我想切换使用相同 check$ 的周围跨度的类“同意”(但作为一个类)。我不想对匹配的复选框列表进行硬编码,因为这可能会有所不同。

这是我的代码。此函数按预期工作:

agree = function (checkbox, span) {
$(checkbox).change(function(){
$(span).toggleClass('agree');
});
};

这是我试图传递给上述函数的内容,它不起作用:

$(function() {
var elemid = 'check',
checks = Array($('[id^='+elemid+']').length);
console.log(checks);
for (i=0; i < checks; i++) {
agree('#'+elemid+checks[i], "."+elemid+checks[i]);
}
});

console.log(checks) 返回 [undefined × 4]。元素的数量是正确的,但我不知道它为什么未定义,或者这是否重要。

以下代码按预期工作,但正如我所说,我宁愿不必指定每个匹配的元素:

$(function() {
var checks = ["check1", "check2", "check3", "check4"];
for (i=0; i < checks.length; i++) {
agree('#'+checks[i], "."+checks[i]);
}
});

谢谢。

编辑:感谢Jack ,我忽略了最简单的方法。我向所有复选框和跨度添加了相同的类,并解决了这个问题:

$('input.check').change(function(){
$(this).closest('span.check').toggleClass('agree');
});

最佳答案

我可能完全遗漏了一些东西,但我很确定您只是想为每个复选框附加一个更改处理程序。在这种情况下,你可以给他们都上同样的课。我也在猜测你的 html 结构。

供引用:

http://api.jquery.com/closest/

http://docs.jquery.com/Tutorials:How_jQuery_Works

$('.yourcheckboxclass').change(function(){ //grab all elements with this class and attach this change handler
$(this).closest('span').toggleClass('agree');
});

关于Javascript 数组未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11471834/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com