Jquery只注册一个id

Jquery only registers one id

本文关键字:一个 id 注册 Jquery      更新时间:2023-09-26

我有三个复选框,如下所示:

<input id="image_tagging" class="1" type="checkbox" value="1" checked="checked" name="data[image_tagging]">

现在我想创建一些ajax(运行良好),但是只有第一个复选框有事件:

这是我的Jquery函数:

    $('#image_tagging').click(function(){
    var value = 0;
    var websiteID = $(this).attr('class');
    if($(this).attr('checked')){
        value = 4;
    }else{
        value = -4;
    }
    alert('works! '+'id = '+websiteID+" value = "+value );
});

所以我的问题是,为什么这个点击功能只发生在我的一个复选框上?(如果重要的话,这只是第一个复选框在起作用)

id s在html页面上必须是唯一的。相反,在标记中使用类,在jQuery中使用类选择器。

HTML

<input class="image_tagging 1" type="checkbox" value="1" checked="checked" name="data[image_tagging]">

Javascript

$('.image_tagging').click(function(){
    var value = 0;
    var websiteID = $(this).attr('class');
    if($(this).attr('checked')){
        value = 4;
    }else{
        value = -4;
    }
    alert('works! '+'id = '+websiteID+" value = "+value );
});

id必须是唯一的,将id改为类,而不是

id="image_tagging"

class="image_tagging"

然后

  $('.image_tagging').click(function(){

在html

<input class="image_tagging" type="checkbox" value="1" checked="checked" name="data[image_tagging]">

js中的

 $('.image_tagging').click(function(){ 
// your code
});

id必须是唯一的,请改用class或尝试此。。。

$('input[type="checkbox"]').click(function(){
    var value = 0;
    var websiteID = $(this).attr('class');
    if($(this).attr('checked')){
        value = 4;
    }else{
        value = -4;
    }
    alert('works! '+'id = '+websiteID+" value = "+value );
});

无需更改您已经编写的任何HTML代码。。。

ID在DOM结构中应该是唯一的。使用class而不是ID。

<input id="image_tagging" class="img_tagging 1" type="checkbox" value="1" checked="checked" name="data[image_tagging]">

然后使用.image_tagging来绑定点击事件而不是#image_tagging

$('.image_tagging').click(function(){