2013-01-05 51 views
0

我有很多复选框,并为每一个我有一个输入字段旁边 我想当我点击每个复选框..输入下一个disapear!所以我这样做..它看起来合乎逻辑的我,但它是一个烂摊子jQuery的问题复选框,隐藏输入旁边

$(":checkbox").click(function() { 
    $(":checkbox").next().hide(); 
}); 

,但它隐藏的文件全部投入 所以我tryed这

this.next().hide(); 

,但它不工作! 我在沉默中试过这个!

for(i=0;i<$(":checkbox").length;i++){ 
    $(":checkbox").eq(i).click(function() { 
     $(":checkbox").eq(i).next().hide(); 
    }); 
} 

仍然不能正常工作!我的逻辑有什么问题?

+0

举起小提琴 –

回答

1

你想用作选择器的复选框是这样的 -

$('input:checkbox'); 

其次,在点击处理程序的回调中,您可以使用$(this)关键字来访问创建该事件的特定元素。

$("input:checkbox").on('click',function() { 
    $(this).next().hide(); 
}); 

我喜欢非常详细和我的选择,以提高可读性,所以作为最后一个建议,为什么不给next()功能给一个选择,并指定要寻找下一个input元素?

$(this).next('input').hide(); 
3

尝试:

$('input[type=checkbox]').change(function() { 
    $(this).next().toggle(); 
}); 
1

它应该是:

$(":checkbox").click(function() { 
    $(this).next().hide(); 
}); 

this$(this)有很大的不同,我建议你通过jQuery的文档获取更多信息阅读,因为它是非常fundemental ..