首页 > 解决方案 > 如何构造 if...else 语句以返回 true

问题描述

完整代码https://codepen.io/3noki/pen/xjyErQ

function checkForMatch() {
  if ( $(openedCardsList[0]).is(openedCardsList[1]) ) {
  $(openedCardsList[0]).removeClass('open show').addClass('match');
  $(openedCardsList[1]).toggleClass('open show');
  $(openedCardsList[1]).toggleClass('match');
  $(openedCardsList) = [];
  }

  else {unFlip()}
}

这段代码目前只返回假值,我想知道如何以纯 DOM 或纯 jquery 格式构造它以便能够返回真值。

openedCardsList[0]===openedCardsList[1]

也没有返回真

当数组 0 和 1 的卡片相同时,我希望这个值返回 true。

标签: javascriptjqueryhtmldom

解决方案


检查/匹配(FontAwesome)图标class名称怎么样?

因此,在创建卡片(或生成其 HTML)时,您将添加fa到元素的“数据”(使用jQuery.data()),如下所示:

function createCardHTML() {
  symbol = cards.children("i");
  symbol.each(function(index, item) {
    $(item).addClass(cardsList[index])
      // If the icon's class name is `fa-diamond`, `$(item).data('fa')` would be `diamond`.
      .data('fa', cardsList[index].substring(3)); // <- here's the data
  });
  return symbol;
}

然后,在checkForMatch()

var b = $('i.fa', openedCardsList[0]).data('fa');
var c = $('i.fa', openedCardsList[1]).data('fa');
var eq = ( b && c && b === c );

演示


推荐阅读