我有很多复选框,每一个我都有一个输入字段 我想当我点击每个复选框..输入下一个消失!所以我做了这个..它对我来说看起来合乎逻辑,但它是一团糟
$(":checkbox").click(function() {
$(":checkbox").next().hide();
});
但它隐藏了文档的所有输入 所以我尝试了这个
this.next().hide();
但它不起作用! 我在staid尝试了这个!
for(i=0;i<$(":checkbox").length;i++){
$(":checkbox").eq(i).click(function() {
$(":checkbox").eq(i).next().hide();
});
}
仍然无法正常工作!我的逻辑出了什么问题?
答案 0 :(得分:3)
尝试:
$('input[type=checkbox]').change(function() {
$(this).next().toggle();
});
答案 1 :(得分:1)
应该是:
$(":checkbox").click(function() {
$(this).next().hide();
});
this
和$(this)
完全不同,我建议您阅读jQuery文档以获取更多信息,因为它非常有趣......
答案 2 :(得分:1)
您想要用作复选框选择器的是 -
$('input:checkbox');
其次,在单击处理程序的回调中,您可以使用$(this)
关键字来访问创建事件的特定元素。
$("input:checkbox").on('click',function() {
$(this).next().hide();
});
我喜欢用我的选择器来提高可读性,所以作为最后的建议,为什么不给next()
函数选择一个选择器并指定你要查找下一个input
元件?
$(this).next('input').hide();