0

我有很多复选框,每个复选框旁边都有一个输入字段,当我单击每个复选框时我想要..下一个输入消失!所以我做了这个..这对我来说看起来很合乎逻辑,但它是一团糟

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

但它隐藏了文档的所有输入,所以我尝试了这个

this.next().hide();

但它不工作!我尝试过这个!

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

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

4

3 回答 3

3

尝试:

$('input[type=checkbox]').change(function() {
  $(this).next().toggle();
});
于 2013-01-05T22:42:48.280 回答
1

它应该是:

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

this并且$(this)完全不同,我建议阅读 jQuery 文档以获取更多信息,因为它非常基础......

于 2013-01-05T22:42:57.450 回答
1

您想用作复选框的选择器的是 -

$('input:checkbox');

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

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

我喜欢对我的选择器非常冗长以提高可读性,所以作为最后的建议,为什么不给next()函数一个选择器并指定要查找下一个input元素呢?

  $(this).next('input').hide();
于 2013-01-05T22:43:18.180 回答