javascript - jQuery removeAttr 阻止重新添加属性

标签 javascript jquery

我有一个复选框列表,我希望人们能够单独勾选这些复选框,或者批量勾选/取消勾选以便于使用。

<input type="checkbox" name="category" id="c1" /> <label for="cl">Category</label>

批量勾选/取消勾选按钮的标记是:

<p>
    <a href="javascript:;" class="btn btn-info btn-xs" id="tick-all">Tick All</a>
    <a href="javascript:;" class="btn btn-info btn-xs" id="untick-all">Un-Tick All</a>
</p>

JavaScript 是:

$("#tick-all").click(function () {
    $("input[type=checkbox]").attr('checked', 'checked');
});

$("#untick-all").click(function () {
    $("input[type=checkbox]").removeAttr('checked');
});

但是当我按顺序单击按钮:勾选、取消勾选、勾选时,它们只会在前两次起作用,之后,复选框将不会再次被勾选。

最佳答案

使用 prop() 而不是 attr

$("#tick-all").click(function () {
    $("input[type=checkbox]").prop('checked', true);
});

$("#untick-all").click(function () {
    $("input[type=checkbox]").prop('checked',false);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" name="category" id="c1" /> <label for="cl">Category</label>
<input type="checkbox" name="category" id="c1" /> <label for="cl">Category</label>
<input type="checkbox" name="category" id="c1" /> <label for="cl">Category</label>
<p>
    <a href="javascript:;" class="btn btn-info btn-xs" id="tick-all">Tick All</a>
    <a href="javascript:;" class="btn btn-info btn-xs" id="untick-all">Un-Tick All</a>
</p>

关于javascript - jQuery removeAttr 阻止重新添加属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38850344/

相关文章:

javascript - jQuery:使用 parent()、next() 对单击单选按钮进行样式设置和取消样式设置

javascript - 具有动态生成内容的闭包

javascript - Window.getComputedStyle does not implement interface Element 错误在 Firefox 中

jquery - iOS7 中 jQuery Mobile 滑动事件的不稳定行为

javascript - 为什么我的 Node 事件回调在事件中显示为未定义?

javascript - Node.js——修改node_module内容

javascript - <embed> 带密码的源更改器

php - API 错误代码 : 100 facebook OpenGraph

带有自定义消息的 jquery 正则表达式

jquery - 单击 td,选择 jQuery 中的单选按钮