【发布时间】:2010-11-05 04:37:06
【问题描述】:
我在 Javascript 方面真的很糟糕,我正在努力解决它。
我想要做的是选择所有复选框。但是,我发现的所有内容都试图通过名称来完成,我想通过 ID 或类来完成。按名称全选是不切实际的,不是吗?
【问题讨论】:
标签: javascript
我在 Javascript 方面真的很糟糕,我正在努力解决它。
我想要做的是选择所有复选框。但是,我发现的所有内容都试图通过名称来完成,我想通过 ID 或类来完成。按名称全选是不切实际的,不是吗?
【问题讨论】:
标签: javascript
使用 jQuery 试试这个:
$(".className").prop("checked", true);
$("#idName").prop("checked", true);
【讨论】:
如果您为所有复选框指定相同的名称 + 一个数字(即chkbox1、chkbox2 等...)会怎样。然后在您的 javascript 中,您将创建一个 for 循环来检查您拥有的复选框的数量,然后执行 getElementByID("chkbox" + num)(其中 num 是您的循环变量)。
【讨论】:
按类别:
var clist=document.getElementsByClassName("MyClass");
for (var i = 0; i < clist.length; ++i) { clist[i].checked = "checked"; }
按 ID:
var clist=document.getElementById("MyID");
for (var i = 0; i < clist.length; ++i) { clist[i].checked = "checked"; }
另请参阅:Loop Over querySelectorAll Matches。
按类别:
$('.myclass:input:checkbox').each(function() { this.checked = true; });
按 ID:
$('#myID:input:checkbox').each(function() { this.checked = true; });
【讨论】:
使用JQuery,您可以非常轻松地做到这一点!
$(".ClassName").attr("checked", "true");
或单个 ID
$("#ID").attr("checked", "true");
【讨论】:
伪代码:
function checkAll(array_with_id_values)
{
for (var i = 0, ilen = array_with_id_values.length; i < ilen; i++)
{
document.getElementById(array_with_id_values[i]).checked = true;
}
}
调用它:
checkAll(['my-unique-id', 'my-other-unique-id', 'my-third-unique-id']);
你不应该使用这样冗长的变量名,并检查参数是一个数组,你得到的元素是一个复选框等。
【讨论】:
当有模式要匹配时,JQuery 非常棒。见Check All Checkboxes with JQuery。
【讨论】:
var array = document.getElementsByTagName("input");
for(var ii = 0; ii < array.length; ii++)
{
if(array[ii].type == "checkbox")
{
if(array[ii].className == YOUR_CLASS_NAME)
{
array[ii].checked = true;
}
}
}
按 ID:
var checkbox = document.getElementById(YOUR_ID);
if(null != checkbox)
checkbox.checked = true;
【讨论】:
我总是在使用 javascript 时遇到困难。您可能想要调查 jQuery javascript 库。它极大地增强了我使用 javascript 解决问题的能力,以及创建更清晰简洁的代码来操作和访问 DOM。
使用 jQuery,您应该能够轻松地通过 ID 选择您想要的所有复选框,然后循环通过它们设置要检查的值。
【讨论】: