Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将函数应用于页面上的每个复选框?_Javascript_Jquery_Html - Fatal编程技术网

Javascript 如何将函数应用于页面上的每个复选框?

Javascript 如何将函数应用于页面上的每个复选框?,javascript,jquery,html,Javascript,Jquery,Html,我试图对页面上显示/隐藏的每个复选框应用一个函数,这取决于复选框是否选中,此函数使页面上的所有切换 $("input[type=checkbox]").live('change', function() { if ($(this).is(':checked') == false) { $('#selectlist').hide(); } else { $('#selectlist').show(); } }); 我尝试了jquery的每一个函

我试图对页面上显示/隐藏
的每个复选框应用一个函数,这取决于复选框是否选中,此函数使页面上的所有
切换

$("input[type=checkbox]").live('change', function() {
  if ($(this).is(':checked') == false) {
   $('#selectlist').hide();
    } else {
       $('#selectlist').show();
    }
 });     
我尝试了jquery
的每一个函数,就像这样,但似乎不起作用

    $.each($("input[type=checkbox]").live('change', function() {

        if ($(this).is(':checked') == false) {
             $('#selectlist').hide();
        } else {
             $('#selectlist').show();
        }
    }));
我知道可以通过使用
而不是
输入[type=checkbox]
来实现这一点,但我希望避免这样做


如何让jquery更改用户单击的复选框的行为

如果您试图将事件处理程序绑定到所有验证
输入[type=checkbox]
的元素,只需执行以下操作即可

$(document).on('change', "input[type=checkbox]", function() {
    if (!this.checked) {
         $('#selectlist').hide();
    } else {
         $('#selectlist').show();
    }
});
无需在那里使用
每个
:如果jQuery集合包含多个元素,大多数jQuery函数都可以工作

请注意,我在那里使用了
,而不是
live
:在长期被弃用之后,
live
已从jQuery的最新版本中删除


编辑:以下评论中的讨论导致此代码:

$(document).on('change', "input[type=checkbox]", function() {
    $(this).next().toggle(this.checked);
});

如果您试图将事件处理程序绑定到验证
input[type=checkbox]
的所有元素,只需执行以下操作即可

$(document).on('change', "input[type=checkbox]", function() {
    if (!this.checked) {
         $('#selectlist').hide();
    } else {
         $('#selectlist').show();
    }
});
无需在那里使用
每个
:如果jQuery集合包含多个元素,大多数jQuery函数都可以工作

请注意,我在那里使用了
,而不是
live
:在长期被弃用之后,
live
已从jQuery的最新版本中删除


编辑:以下评论中的讨论导致此代码:

$(document).on('change', "input[type=checkbox]", function() {
    $(this).next().toggle(this.checked);
});
ID是唯一的,并且没有“页面切换上的所有
”,只能有一个?改为使用类,并向我们展示标记的外观


ID是唯一的,并且没有“页面切换上的所有
”,只能有一个?改为使用类,并向我们展示标记的外观

使用.on()而不是.live()。您使用的是哪个版本的jQuery?@MelanciaUK似乎无法使用.on()这可能是因为jQuery的版本吗?更新为1.9.1版本的jQuery,并使用.on()而不是.live(),在我选中/取消选中复选框时仍然存在切换所有选项的问题使用.on()而不是.live()您使用的是哪个版本的jQuery?@MelanciaUK似乎无法与.on()配合使用。这可能是因为jQuery的版本吗?更新为1.9.1版本的jQuery,并使用.on()而不是.live(),在我选中/取消选中复选框时仍然存在切换所有选项的问题。我将问题更新为使用类而不是id,这仍然可以切换页面上的所有内容,我不知道你想要什么。是否只显示/隐藏复选框后面的div?当复选框未选中时,仅显示div。我更新了我的问题以使用类而不是id,这仍然会切换页面上的所有选项我得不到你想要的。是否仅显示/隐藏复选框后面的div?当复选框未选中时,仅显示div