Javascript - 取消选中数组未列出的所有元素
Javascript - Uncheck all elements not listed by an array
给定一个值数组,我希望我的代码禁用与该值相关的所有元素(复选框(,并取消选中之前禁用的任何元素(复选框(。最初我的代码只是禁用了它们,并没有取消选中它们:
function allow(j, extended){
$('[id^="'+j+'_extended_"]').attr('disabled', 'disabled');
for (var k = 0; k < extended.length; k++) {
$("#"+j+"_extended_"+extended[k]).attr("disabled", ""); //IE
$("#"+j+"_extended_"+extended[k]).removeAttr('disabled'); //Other Browers
}
}
但是,这将首先禁用每个元素,然后重新启用允许的元素。这不适用于检查/取消选中,因为它不应该检查新的,而只取消选中不再允许的那些。取消选中最后禁用的那些让其他人保持选中/取消选中的最佳方法是什么?
谢谢你的时间!
要在 jquery 中使用此方法更改对象的属性
$("#checkboxname").prop("checked","")// to uncheck
$("#checkboxname").prop("checked","checked")// to check
并在您的代码中
$("#"+j+"_extended_"+extended[k]).prop("checked", "");
我希望有用
我没有传入 的数组,我将要保留的元素启用,而是传入要禁用的元素数组。这样我也可以明确地说取消选中它们。生成的代码如下所示:
function disallow(j, extended){
//First, allow all.
$('[id^="'+j+'_extended_"]').attr("disabled", ""); //IE
$('[id^="'+j+'_extended_"]').removeAttr('disabled'); //Other Browers
//Then remove any that are not allowed.
for (var k = 0; k < extended.length; k++) {
$("#"+j+"_extended_"+extended[k]).attr('disabled', 'disabled');
$("#"+j+"_extended_"+extended[k]).attr("checked", ""); //IE
$("#"+j+"_extended_"+extended[k]).removeAttr('checked'); //Other Browers
}
}
非常感谢那些花时间回复的人。
相关文章:
- 元素未使用当前玩家操作进行更新
- AJAX和php脚本后添加的表单元素未传输到$_POST
- JSON 元素未显示
- 找不到在 create-js 中运行的动画,未列出任何错误
- 如果释放鼠标时内部元素未悬停,则防止触发“单击”的正确方法
- 元素未显示在iOS表单提交中
- Web元素未在中国显示
- 调用的元素未触发事件
- Angular Js元素未渲染
- Ajax 数据元素未拾取
- 指令元素未显示
- JQuery:如何在html元素中列出单词
- chrome.history.getVisits未列出所有URL
- 如果元素未显示在 Angular JS 中,则想隐藏“|”
- HTML 进度元素未更新
- 侧边栏子菜单元素未按预期显示/隐藏
- 我有错误文档.注册元素未被细化
- 与“click”事件一起存储的jQuery元素未按要求工作
- Javascript - 取消选中数组未列出的所有元素
- 由 JavaScript 创建的元素未被 CSS 文件格式化