我在网页上有几组复选框。我想取消所有使用javascript的代码。现在,我通过查找每个集合的名称并使用FOR循环取消选中它们的方式来做到这一点...
for (i=0;i<document.getElementsByName("myboxes").length;i++) {
document.getElementsByName("myboxes")[i].checked=false;}
for (i=0;i<document.getElementsByName("moreboxes").length;i++) {
document.getElementsByName("moreboxes")[i].checked=false;}
for (i=0;i<document.getElementsByName("evenmoreboxes").length;i++) {
document.getElementsByName("evenmoreboxes")[i].checked=false;}
我正在寻找一种将它们全部定位为一个循环的方法。我可以getElementsByTagName('input')
以所有输入为目标,但这是一个问题,因为我不想取消选中某些无线电输入。有没有一种针对所有checkbox inputs
的方法?
感谢您的建议。我只是想到了什么。我使用的每个NAME中都有单词“ boxes”,即myboxes,moreboxes,evenmoreboxes。是否可以将名称中的“框”一词作为目标,例如通配符,类似document.getElementsByName("*boxes")
的方式,如果我在不想取消选中的位置添加了一组复选框,则可以用不同的名字命名。
答案 0 :(得分:1)
您可以选中所有选中的复选框并重置其状态:
Entering new campaign: Show********************************
{:metrics=>"wins,win_rate,ctr,clicks_global", :timezone=>"UTC", :type=>"1", :method=>"getdata", :groupby=>"P1D", :dimensions=>"advertiser_name,campaign_name", :path=>"3.0/report/thirdpart"}
**** sending request *****
{:metrics=>"wins,win_rate,ctr,clicks_global", :timezone=>"UTC", :type=>"1", :method=>"getdata", :groupby=>"P1M", :dimensions=>"advertiser_name,campaign_name", :path=>"3.0/report/thirdpart"}
**** sending request *****
Campaign finished: ********************************
Entering new campaign: ********************************
{:metrics=>"wins,win_rate,ctr,clicks_global", :timezone=>"UTC", :type=>"1", :method=>"getdata", :groupby=>"P1D", :dimensions=>"advertiser_name,campaign_name", :path=>"3.0/report/thirdpart"}
**** sending request *****
{:metrics=>"wins,win_rate,ctr,clicks_global", :timezone=>"UTC", :type=>"1", :method=>"getdata", :groupby=>"P1M", :dimensions=>"advertiser_name,campaign_name", :path=>"3.0/report/thirdpart"}
**** sending request *****
Campaign finished: ********************************
function uncheckAll() {
document.querySelectorAll('input[name$="boxes"]:checked')
.forEach(checkbox => checkbox.checked = false);
}
答案 1 :(得分:0)
您可以使用document.querySelectorAll('input[type="checkbox"]');
获取所有列表。然后运行循环
答案 2 :(得分:0)
我的建议是:
document.querySelectorAll("[name=myboxes], [name=moreboxes], [name=evenmoreboxes]").forEach((e) => echecked=false);
document.querySelectorAll("[name=myboxes], [name=moreboxes], [name=evenmoreboxes]").forEach((e) => e.checked=false);
<input type="checkbox" name="myboxes" value="1" checked>1<br>
<input type="checkbox" name="moreboxes" value="2" checked>2<br>
<input type="checkbox" name="evenmoreboxes" value="3" checked>3<br>
答案 3 :(得分:0)
如@imjared所建议,您可以使用querySelectorAll
,但必须对其进行迭代:
querySelectorAll('input[type="checkbox"]').forEach(c => c.checked = false);