2

This is what I currently have:

var typeOrder = ['Land', 'Planeswalker', 'Creature', 'Instant', 'Sorcery', 'Enchantment', 'Artifact', 'Vanguard', 'Plane', 'Scheme', 'Summon', 'Tribal', 'Conspiracy', 'Phenomenon'];

$.each(typeOrder, function (_, order) {
    var cardQuantity = 0;
    var $sorted = $('<div>');

    // sort by types
    var $types = $('.card-line .types').filter(function () {
        return $(this).text() === '["'+order+'"]';
    });

    // title
    if($types.length !== 0) {
        cardQuantity += parseInt($types.siblings('.quantity').text(), 10); // quantity
        $sorted.prepend('<div class="title-gap"></div><h1>' + order + ' ('+ cardQuantity + ')</h1>');
    }

    $('#mainboard').append($sorted);
});

parseInt doesn't seem to work here:

cardQuantity += parseInt($types.siblings('.quantity').text(), 10); // quantity

It keeps giving me the integers like a string. For example is the values are 1 + 2 it gives me 12 instead of 3. Not sure why it's not working.

EDIT: FIDDLE

0

1 Answer 1

3

Use callback function in text() method to iterate values

function SortCards() {
  var typeOrder = ['Land', 'Planeswalker', 'Creature', 'Instant', 'Sorcery', 'Enchantment', 'Artifact', 'Vanguard', 'Plane', 'Scheme', 'Summon', 'Tribal', 'Conspiracy', 'Phenomenon'];

  $.each(typeOrder, function(_, order) {
    var cardQuantity = 0;
    var $sorted = $('<div>');

    // sort by types
    var $types = $('.card-line .types').filter(function() {
      return $(this).text() === '["' + order + '"]';
    });

    // land sort
    if (order === 'Land') {
      $types.parent().sort(function(a, b) {
        var landTypeA = $(a).find('.supertypes').text();
        var landTypeB = $(b).find('.supertypes').text();

        return (landTypeA == '["Basic"]' && landTypeB != '["Basic"]') ? 0 : (landTypeA != '["Basic"]' && landTypeB == '["Basic"]') ? 1 : -1;
      }).appendTo($sorted);
    }

    // secondary sort by cmc
    $types.parent().sort(function(a, b) {
      var cmcA = +$(a).find('.cmc').text();
      var cmcB = +$(b).find('.cmc').text();

      return cmcA > cmcB ? 1 : (cmcA < cmcB ? 0 : -1);
    }).appendTo($sorted);

    // title
    if ($types.length !== 0) {

      $types.siblings('.quantity').text(function(i, v) {
        cardQuantity += parseInt(v, 10);
      }); // quantity
      $sorted.prepend('<div class="title-gap"></div><h1>' + order + ' (' + cardQuantity + ')</h1>');
    }

    $('#mainboard').append($sorted);
  });
}

SortCards();
.title-gap {
  width: 100%;
  height: 10px;
}
.card-quantity {
  display: inline;
}
.card-name {
  display: inline;
}
.quantity {
  display: none;
}
.card-line div.types {
  display: none;
}
.card-line div.supertypes {
  display: none;
}
.card-line div.rarity {
  display: none;
}
.card-line div.colors {
  display: none;
}
.card-line div.name {
  display: none;
}
.card-line div.cmc {
  display: none;
}
.card-line div.set {
  display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="mainboard">
  <div class="card-line">
    <div class="card-quantity">1x</div>
    <div class="card-name vcard" data-vcard-x="mouse" data-image-path="http://goblinhammer.dev/images/cards/ISD/kessig wolf run.jpg">Kessig Wolf Run</div>
    <div class="quantity">1</div>
    <div class="types">["Land"]</div>
    <div class="supertypes"></div>
    <div class="rarity">Rare</div>
    <div class="colors"></div>
    <div class="name">kessig wolf run</div>
    <div class="cmc"></div>
    <div class="set">ISD</div>
  </div>
  <div class="card-line">
    <div class="card-quantity">1x</div>
    <div class="card-name vcard" data-vcard-x="mouse" data-image-path="http://goblinhammer.dev/images/cards/AVR/alchemist's refuge.jpg">Alchemist's Refuge</div>
    <div class="quantity">1</div>
    <div class="types">["Land"]</div>
    <div class="supertypes"></div>
    <div class="rarity">Rare</div>
    <div class="colors"></div>
    <div class="name">alchemist's refuge</div>
    <div class="cmc"></div>
    <div class="set">AVR</div>
  </div>
  <div class="card-line">
    <div class="card-quantity">4x</div>
    <div class="card-name vcard" data-vcard-x="mouse" data-image-path="http://goblinhammer.dev/images/cards/DIS/hallowed fountain.jpg">Hallowed Fountain</div>
    <div class="quantity">4</div>
    <div class="types">["Land"]</div>
    <div class="supertypes"></div>
    <div class="rarity">Rare</div>
    <div class="colors"></div>
    <div class="name">hallowed fountain</div>
    <div class="cmc"></div>
    <div class="set">DIS</div>
  </div>
  <div class="card-line">
    <div class="card-quantity">4x</div>
    <div class="card-name vcard" data-vcard-x="mouse" data-image-path="http://goblinhammer.dev/images/cards/RAV/temple garden.jpg">Temple Garden</div>
    <div class="quantity">4</div>
    <div class="types">["Land"]</div>
    <div class="supertypes"></div>
    <div class="rarity">Rare</div>
    <div class="colors"></div>
    <div class="name">temple garden</div>
    <div class="cmc"></div>
    <div class="set">RAV</div>
  </div>
  <div class="card-line">
    <div class="card-quantity">4x</div>
    <div class="card-name vcard" data-vcard-x="mouse" data-image-path="http://goblinhammer.dev/images/cards/M10/sunpetal grove.jpg">Sunpetal Grove</div>
    <div class="quantity">4</div>
    <div class="types">["Land"]</div>
    <div class="supertypes"></div>
    <div class="rarity">Rare</div>
    <div class="colors"></div>
    <div class="name">sunpetal grove</div>
    <div class="cmc"></div>
    <div class="set">M10</div>
  </div>
  <div class="card-line">
    <div class="card-quantity">1x</div>
    <div class="card-name vcard" data-vcard-x="mouse" data-image-path="http://goblinhammer.dev/images/cards/GPT/steam vents.jpg">Steam Vents</div>
    <div class="quantity">1</div>
    <div class="types">["Land"]</div>
    <div class="supertypes"></div>
    <div class="rarity">Rare</div>
    <div class="colors"></div>
    <div class="name">steam vents</div>
    <div class="cmc"></div>
    <div class="set">GPT</div>
  </div>
  <div class="card-line">
    <div class="card-quantity">2x</div>
    <div class="card-name vcard" data-vcard-x="mouse" data-image-path="http://goblinhammer.dev/images/cards/AVR/cavern of souls.jpg">Cavern of Souls</div>
    <div class="quantity">2</div>
    <div class="types">["Land"]</div>
    <div class="supertypes"></div>
    <div class="rarity">Rare</div>
    <div class="colors"></div>
    <div class="name">cavern of souls</div>
    <div class="cmc"></div>
    <div class="set">AVR</div>
  </div>
  <div class="card-line">
    <div class="card-quantity">4x</div>
    <div class="card-name vcard" data-vcard-x="mouse" data-image-path="http://goblinhammer.dev/images/cards/RAV/overgrown tomb.jpg">Overgrown Tomb</div>
    <div class="quantity">4</div>
    <div class="types">["Land"]</div>
    <div class="supertypes"></div>
    <div class="rarity">Rare</div>
    <div class="colors"></div>
    <div class="name">overgrown tomb</div>
    <div class="cmc"></div>
    <div class="set">RAV</div>
  </div>
  <div class="card-line">
    <div class="card-quantity">4x</div>
    <div class="card-name vcard" data-vcard-x="mouse" data-image-path="http://goblinhammer.dev/images/cards/ISD/hinterland harbor.jpg">Hinterland Harbor</div>
    <div class="quantity">4</div>
    <div class="types">["Land"]</div>
    <div class="supertypes"></div>
    <div class="rarity">Rare</div>
    <div class="colors"></div>
    <div class="name">hinterland harbor</div>
    <div class="cmc"></div>
    <div class="set">ISD</div>
  </div>
  <div class="card-line">
    <div class="card-quantity">1x</div>
    <div class="card-name vcard" data-vcard-x="mouse" data-image-path="http://goblinhammer.dev/images/cards/CON/nicol bolas, planeswalker.jpg">Nicol Bolas, Planeswalker</div>
    <div class="quantity">1</div>
    <div class="types">["Planeswalker"]</div>
    <div class="supertypes"></div>
    <div class="rarity">Mythic Rare</div>
    <div class="colors">["Blue","Black","Red"]</div>
    <div class="name">nicol bolas, planeswalker</div>
    <div class="cmc">8</div>
    <div class="set">CON</div>
  </div>
  <div class="card-line">
    <div class="card-quantity">2x</div>
    <div class="card-name vcard" data-vcard-x="mouse" data-image-path="http://goblinhammer.dev/images/cards/AVR/griselbrand.jpg">Griselbrand</div>
    <div class="quantity">2</div>
    <div class="types">["Creature"]</div>
    <div class="supertypes">["Legendary"]</div>
    <div class="rarity">Mythic Rare</div>
    <div class="colors">["Black"]</div>
    <div class="name">griselbrand</div>
    <div class="cmc">8</div>
    <div class="set">AVR</div>
  </div>
  <div class="card-line">
    <div class="card-quantity">2x</div>
    <div class="card-name vcard" data-vcard-x="mouse" data-image-path="http://goblinhammer.dev/images/cards/RTR/angel of serenity.jpg">Angel of Serenity</div>
    <div class="quantity">2</div>
    <div class="types">["Creature"]</div>
    <div class="supertypes"></div>
    <div class="rarity">Mythic Rare</div>
    <div class="colors">["White"]</div>
    <div class="name">angel of serenity</div>
    <div class="cmc">7</div>
    <div class="set">RTR</div>
  </div>
  <div class="card-line">
    <div class="card-quantity">1x</div>
    <div class="card-name vcard" data-vcard-x="mouse" data-image-path="http://goblinhammer.dev/images/cards/M13/thragtusk.jpg">Thragtusk</div>
    <div class="quantity">1</div>
    <div class="types">["Creature"]</div>
    <div class="supertypes"></div>
    <div class="rarity">Rare</div>
    <div class="colors">["Green"]</div>
    <div class="name">thragtusk</div>
    <div class="cmc">5</div>
    <div class="set">M13</div>
  </div>
  <div class="card-line">
    <div class="card-quantity">2x</div>
    <div class="card-name vcard" data-vcard-x="mouse" data-image-path="http://goblinhammer.dev/images/cards/M14/fog.jpg">Fog</div>
    <div class="quantity">2</div>
    <div class="types">["Instant"]</div>
    <div class="supertypes"></div>
    <div class="rarity">Common</div>
    <div class="colors">["Green"]</div>
    <div class="name">fog</div>
    <div class="cmc">1</div>
    <div class="set">M14</div>
  </div>
  <div class="card-line">
    <div class="card-quantity">4x</div>
    <div class="card-name vcard" data-vcard-x="mouse" data-image-path="http://goblinhammer.dev/images/cards/RTR/sphinx's revelation.jpg">Sphinx's Revelation</div>
    <div class="quantity">4</div>
    <div class="types">["Instant"]</div>
    <div class="supertypes"></div>
    <div class="rarity">Mythic Rare</div>
    <div class="colors">["White","Blue"]</div>
    <div class="name">sphinx's revelation</div>
    <div class="cmc">3</div>
    <div class="set">RTR</div>
  </div>
  <div class="card-line">
    <div class="card-quantity">4x</div>
    <div class="card-name vcard" data-vcard-x="mouse" data-image-path="http://goblinhammer.dev/images/cards/pMEI/supreme verdict.jpg">Supreme Verdict</div>
    <div class="quantity">4</div>
    <div class="types">["Sorcery"]</div>
    <div class="supertypes"></div>
    <div class="rarity">Special</div>
    <div class="colors">["White","Blue"]</div>
    <div class="name">supreme verdict</div>
    <div class="cmc">4</div>
    <div class="set">pMEI</div>
  </div>
  <div class="card-line">
    <div class="card-quantity">2x</div>
    <div class="card-name vcard" data-vcard-x="mouse" data-image-path="http://goblinhammer.dev/images/cards/AVR/temporal mastery.jpg">Temporal Mastery</div>
    <div class="quantity">2</div>
    <div class="types">["Sorcery"]</div>
    <div class="supertypes"></div>
    <div class="rarity">Mythic Rare</div>
    <div class="colors">["Blue"]</div>
    <div class="name">temporal mastery</div>
    <div class="cmc">7</div>
    <div class="set">AVR</div>
  </div>
  <div class="card-line">
    <div class="card-quantity">2x</div>
    <div class="card-name vcard" data-vcard-x="mouse" data-image-path="http://goblinhammer.dev/images/cards/DKA/increasing ambition.jpg">Increasing Ambition</div>
    <div class="quantity">2</div>
    <div class="types">["Sorcery"]</div>
    <div class="supertypes"></div>
    <div class="rarity">Rare</div>
    <div class="colors">["Black"]</div>
    <div class="name">increasing ambition</div>
    <div class="cmc">5</div>
    <div class="set">DKA</div>
  </div>
  <div class="card-line">
    <div class="card-quantity">4x</div>
    <div class="card-name vcard" data-vcard-x="mouse" data-image-path="http://goblinhammer.dev/images/cards/M13/farseek.jpg">Farseek</div>
    <div class="quantity">4</div>
    <div class="types">["Sorcery"]</div>
    <div class="supertypes"></div>
    <div class="rarity">Common</div>
    <div class="colors">["Green"]</div>
    <div class="name">farseek</div>
    <div class="cmc">2</div>
    <div class="set">M13</div>
  </div>
  <div class="card-line">
    <div class="card-quantity">4x</div>
    <div class="card-name vcard" data-vcard-x="mouse" data-image-path="http://goblinhammer.dev/images/cards/M13/ranger's path.jpg">Ranger's Path</div>
    <div class="quantity">4</div>
    <div class="types">["Sorcery"]</div>
    <div class="supertypes"></div>
    <div class="rarity">Common</div>
    <div class="colors">["Green"]</div>
    <div class="name">ranger's path</div>
    <div class="cmc">4</div>
    <div class="set">M13</div>
  </div>
  <div class="card-line">
    <div class="card-quantity">1x</div>
    <div class="card-name vcard" data-vcard-x="mouse" data-image-path="http://goblinhammer.dev/images/cards/M13/omniscience.jpg">Omniscience</div>
    <div class="quantity">1</div>
    <div class="types">["Enchantment"]</div>
    <div class="supertypes"></div>
    <div class="rarity">Mythic Rare</div>
    <div class="colors">["Blue"]</div>
    <div class="name">omniscience</div>
    <div class="cmc">10</div>
    <div class="set">M13</div>
  </div>
  <div class="card-line">
    <div class="card-quantity">3x</div>
    <div class="card-name vcard" data-vcard-x="mouse" data-image-path="http://goblinhammer.dev/images/cards/RTR/chromatic lantern.jpg">Chromatic Lantern</div>
    <div class="quantity">3</div>
    <div class="types">["Artifact"]</div>
    <div class="supertypes"></div>
    <div class="rarity">Rare</div>
    <div class="colors"></div>
    <div class="name">chromatic lantern</div>
    <div class="cmc">3</div>
    <div class="set">RTR</div>
  </div>
  <div class="card-line">
    <div class="card-quantity">2x</div>
    <div class="card-name vcard" data-vcard-x="mouse" data-image-path="http://goblinhammer.dev/images/cards/M13/gilded lotus.jpg">Gilded Lotus</div>
    <div class="quantity">2</div>
    <div class="types">["Artifact"]</div>
    <div class="supertypes"></div>
    <div class="rarity">Rare</div>
    <div class="colors"></div>
    <div class="name">gilded lotus</div>
    <div class="cmc">5</div>
    <div class="set">M13</div>
  </div>
  <div class="card-line">
    <div class="card-quantity">1x</div>
    <div class="card-name vcard" data-vcard-x="mouse" data-image-path="http://goblinhammer.dev/images/cards/5DN/door to nothingness.jpg">Door to Nothingness</div>
    <div class="quantity">1</div>
    <div class="types">["Artifact"]</div>
    <div class="supertypes"></div>
    <div class="rarity">Rare</div>
    <div class="colors"></div>
    <div class="name">door to nothingness</div>
    <div class="cmc">5</div>
    <div class="set">5DN</div>
  </div>
</div>

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.