「javascript/runefilter」の編集履歴(バックアップ)一覧に戻る

javascript/runefilter - (2019/02/27 (水) 14:17:42) のソース

#javascript(){{
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
  <script>
    $("#table_runefilter table tbody").each(function () {
      var maxtd = $(this)[0].rows[0].cells.length;
      $("tr").each(function () {
        if (this.cells.length >= maxtd) {
          $(this).addClass("tr1");
        }
        else {
          $(this).addClass("tr2");
        }
      });
    });


    var col = ["赤", "青", "緑"];
    var col2 = ["Red", "Blue", "Green"];
    var job = ["すべて", "ウォーリア", "レンジャー", "メイジ", "クレリック", "マーチャント", "モンク"];
    var job2 = ["Warrior Ranger Mage Cleric Merchant Monk", "Warrior", "Ranger", "Mage", "Cleric", "Merchant", "Monk"];

    $("#table_runefilter table tbody tr").each(function () {
      var num = $(this).children().eq(2).text();
      var num2 = $(this).children().eq(3).text();
      for (var i = 0, len = col.length; i < len; ++i) {
        if (num.indexOf(col[i]) > -1) {
          $(this).addClass(col2[i]); $(this).nextUntil(".tr1").addClass(col2[i]);
        }
      }
      for (var i = 0, len = job.length; i < len; ++i) {
        if (num2.indexOf(job[i]) > -1) {
          $(this).addClass(job2[i]); $(this).nextUntil(".tr1").addClass(job2[i]);
        }
      }
    });

    var args = $.trim($("div#args").text()).split(",");
    if (args == "") {
      filter();
    }
    else {
      var args_job = args[0];
      $('.radio_job_runefilter input[name="job"]').val([args_job]);
      filter();
    }

    $(".radio_runefilter").on("change", function () {
      filter();
    });

    function filter() {
      var radio = $(".radio_runefilter").find('input[type="radio"]:checked');
      var area = radio.map(function(){return $(this).val();});

      $("#table_runefilter table tbody tr").removeClass("hide");
      var count = 0;
      for (var i = 0, len = area.length; i < len; ++i) {
        if (area[i] !== "") {
          $("#table_runefilter table tbody tr").filter(function () {
            count++;
            return !$(this).hasClass(area[i]);
          }).addClass("hide");
        }
      }

      var len = $("#table_runefilter table tbody tr:visible").length;
      $("#result_len").html(len + "個のルーンが存在します。");
    }
  </script>
}}