javascript - 如何使用 jquery 删除 HTML 复选框

标签 javascript jquery html checkbox

有一组复选框,如下所示:

   <div class="checkbox checkbox-inline">
        <label id="test">
            <input type="checkbox" class="icheck" checked value="<?=$skill->name; ?>"> <?=$skill->name; ?>
        </label>
    </div>
   <div class="checkbox checkbox-inline">
        <label id="test">
            <input type="checkbox" class="icheck" checked value="<?=$skill->name; ?>"> <?=$skill->name; ?>
        </label>
    </div>

我有以下 JS

$('#test').on('click', null, function(){
    alert("Clicked");
    $(this).remove();
});

我正在尝试的是当用户单击标签时删除单个复选框(及其标签)。

我想要这样的东西:

   <div class="checkbox checkbox-inline">
        <label id="test" onClick="removeMe()">
            <input type="checkbox" class="icheck" checked value="<?=$skill->name; ?>"> <?=$skill->name; ?>
        </label>
    </div>

在我的 javascript 上:

function removeMe(){
// Do some AJAX GET/POST
$.ajax....

// and finally
$(this).remove() // i am not sure how to do this....
}

有人能指出我正确的方向吗?谢谢

编辑:

这就是我使用的解决方案:

function removeMe(object, skillId, personId){
    $.ajax({
        type: 'POST',
        url: SOME_URL_GOES_HERE,
        dataType: 'json',
        data: { skill_id: skillId, person_id: personId },
        success: function(data, textStatus, jqXHR){
            noty({
                text: data.message,
                layout: 'topRight',
                type: data.response
            });
            $(object).remove();
        },
        error: function(data){
            console.log(data);
            noty({
                layout: 'topRight',
                text: 'Failed to delete record, please try again.',
                type: 'error'
            });
        }
    });
}

按照建议,我使用 .class 而不是我的 id 。

最佳答案

在您的第一个代码中,有多个具有相同 id 的标签。 每个元素应该有唯一的 id,这就是您的代码不适用于第一个代码的原因。提供类或其他属性而不是 id

对于第二个代码,您应该这样做:

<div class="checkbox checkbox-inline">
   <label id="test" onClick="removeMe(this)"> <!--pass the object of current element-->
       <input type="checkbox" class="icheck" checked value="<?=$skill->name; ?>"> <?=$skill->name; ?>
   </label>
</div>

还有你的 JS 代码:

function removeMe(that){
  // Do some AJAX GET/POST
  $.ajax....

  $(that).remove(); 
}

您需要在函数中传递对象。

关于javascript - 如何使用 jquery 删除 HTML 复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25159999/

相关文章:

javascript - 需要帮助显示设置的动态日期和时间

javascript - 如何使 <a> 标记关闭 div。

javascript - 如何禁用 GridView 中的链接按钮

javascript - NodeJS (Windows) - 语法错误 : missing X

javascript - 在输入文件上强制单击事件或打开选择文件窗口

javascript - 谷歌地图 API v3 : Adding custom undo/redo function for edited Polygon

javascript - 如果启用了向左浮动,如何在其他 div 上设置一个 div 的动画?

javascript - 捕获 Backbone.View 中的引用错误

javascript - Node.js http - 将 GET 数据发送到服务器

javascript - 根据数据属性启用或禁用复选框