1

假设以下代码:

<input type="checkbox" name="categories[9507]">

是否有一个javascript命令可以简单地选择页面上的每个复选框?名称仅在数字上略有变化。

我需要在一个页面上选择大约 15000 个,而不是选择所有可用的 :(

(我可以放入书签并单击的东西,或者萤火虫的控制台是最好的)

4

4 回答 4

4

纯 JS,仅限现代浏览器(IE 8+、FF 3.5+、Opera 10+、Safari 3.2+、Chrome 1+):

(function() {
    var chs = document.querySelectorAll​('input[type="checkbox"][name^="categories"]')​​​​​​​​​​​​​​​​​​​​​​​​​​​​;
    for (var i=0; i<chs.length; i++) chs[i].checked = true;
}());

小提琴

QSA 参考

于 2012-08-27T03:08:55.240 回答
2

在 IE 4 之后的任何浏览器的纯脚本中:

function checkAllCheckboxes(root) {
  root = root || document;
  var inputs = root.getElementsByTagName('input');
  for (var i=0, iLen=inputs.length; i<iLen; i++) {
    if (inputs[i].type == 'checkbox') inputs[i].checked = true;
  }
}

root可以是包含相关复选框的任何元素,也可以是整个文档的任何元素。可以添加正则表达式测试以仅检查名称以“类别”开头的那些,例如

  var re = /^categories/;
  var input;
    ...
      input = inputs[i];
    if (input.type == 'checkbox' && re.test(input.name)) {
      input.checked = true;
    }
  ...

作为单行书签:

javascript:var e,es=document.getElementsByTagName('input'),i=0,iL=es.length,r=/^categories/;for(;i<iL;){e=es[i++];if(e.type=="checkbox"&&r.test(e.name))e.checked=true}void 0;

编辑

使书签更短。如果需要,可以删除更多字符。

于 2012-08-27T03:17:39.820 回答
0
$("input[type='checkbox']").attr('checked','checked');​​​​​​​​​​​​​​​​​​​​
于 2012-08-27T03:08:12.573 回答
-1

使用http://api.jquery.com/checkbox-selector/

jQuery(':checkbox').click();
于 2012-08-27T03:07:16.623 回答