ページ内のチェックボックスをすべてチェックする

    @@ -6,31 +6,37 @@ * @require */ -var inputTags = document.getElementsByTagName('input'); -var checkFlag = true; -function isCheckAll() { +(function(){ + var inputTags = document.getElementsByTagName('input'); - var flag = true; - for(var i=0; i<inputTags.length; i++) { - if(inputTags[i].type == "checkbox") { - if(inputTags[i].checked == false) { - flag = false; + var isCheck = true; + + if(isAllChecked()) { + isCheck = false; + } + + function isAllChecked() { + for(var i=0, len=inputTags.length; i<len; i++) { + var elm = inputTags[i]; + if(elm.type === "checkbox") { + if(!elm.checked) { + return false; + } } } + return true; } - return flag; -} -if(isCheckAll()) { - checkFlag = false; -} -for(var i=0; i<inputTags.length; i++) { - if(inputTags[i].type == "checkbox") { - if(inputTags[i].checked != checkFlag) { - inputTags[i].checked = checkFlag; - if(inputTags[i].onclick) { - inputTags[i].onclick(); + + for(var i=0, len=inputTags.length; i<len; i++) { + var elm = inputTags[i]; + if(elm.type === "checkbox") { + if(elm.checked != isCheck) { + elm.checked = isCheck; + if(elm.onclick) { + elm.onclick(); + } } } } -} +})();
  • /*
     * @title ページ内のチェックボックスをすべてチェックする
     * @description ページ内のチェックボックスをすべてチェックする
     * @include http://*
     * @license MIT License
     * @require 
     */
    
    (function(){
    
      var inputTags = document.getElementsByTagName('input');
      var isCheck = true;
      
      if(isAllChecked()) {
        isCheck = false;
      }
      
      function isAllChecked() {
        for(var i=0, len=inputTags.length; i<len; i++) {
          var elm = inputTags[i];
          if(elm.type === "checkbox") {
            if(!elm.checked) {
              return false;
            }
          }
        }
        return true;
      }
      
      for(var i=0, len=inputTags.length; i<len; i++) {
        var elm = inputTags[i];
        if(elm.type === "checkbox") {
          if(elm.checked != isCheck) {
            elm.checked = isCheck;
            if(elm.onclick) {
              elm.onclick();
            }
          }
        }
      }
    
    })();
  • Permalink
    このページへの個別リンクです。
    RAW
    書かれたコードへの直接のリンクです。
    Packed
    文字列が圧縮された書かれたコードへのリンクです。
    Userscript
    Greasemonkey 等で利用する場合の .user.js へのリンクです。
    Loader
    @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
    Metadata
    コード中にコメントで @xxx と書かれたメタデータの JSON です。

History

  1. 2010/06/12 01:15:22 - 2010-06-12
  2. 2010/05/18 00:08:26 - 2010-05-18
  3. 2010/05/17 23:45:13 - 2010-05-17