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

javascript/weaponfilter - (2019/02/27 (水) 23:22:14) のソース

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

    var typ = ["鈍器","杖","剣","短剣","槍","斧","拳","弓"];
    var typ2 = ["Mace","Staff","Sword","Dagger","Spear","Axe","Glove","Bow"];
    var job = ["すべて", "ウォーリア", "レンジャー", "メイジ", "クレリック", "マーチャント", "モンク"];
    var job2 = ["Warrior Ranger Mage Cleric Merchant Monk","Warrior","Ranger","Mage","Cleric","Merchant","Monk"];

    $("#table_weaponfilter table tbody tr").each(function () {
      var num = $(this).children().eq(2).text();
      var num2 = $(this).children().eq(5).text();
      for (var i = 0, len = typ.length; i < len; ++i) {
        if (num === typ[i]) {
          $(this).addClass(typ2[i]); $(this).nextUntil(".tr1").addClass(typ2[i]);
        }
      }
      if (num2.indexOf("以外") > -1) {
        $(this).addClass(job2[0]); $(this).nextUntil(".tr1").addClass(job2[0]);
      }
      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]);
        }
        if (num2.indexOf(job[i]) > -1 && num2.indexOf("以外") > -1) {
          $(this).removeClass(job2[i]); $(this).nextUntil(".tr1").removeClass(job2[i]);
        }
      }
    });

    var args = $.trim($("div#args").text()).split(",");
    if (args == "") {
      filter();}
    else {
      for (var i = 0, len = args.length; i < len; ++i) {
        $(".radio_weaponfilter input").each(function(){
          if($(this).val()==args[i]){
            $(this).val([args[i]]);
            $("#form_weaponfilter").addClass("hide");
          }
        });
      }
      filter();
    }

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

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

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

      var len = $('#table_weaponfilter .tr1:visible').length;
      $("#result_len").html(len+"個の武器が存在します。");
    }
  </script>
}}