Javascript 如何构造if…else语句以返回true
完整代码 这段代码目前只返回假值,我想知道如何以纯DOM或纯jquery格式构造这段代码,以便能够返回真值Javascript 如何构造if…else语句以返回true,javascript,jquery,html,dom,Javascript,Jquery,Html,Dom,完整代码 这段代码目前只返回假值,我想知道如何以纯DOM或纯jquery格式构造这段代码,以便能够返回真值 openedCardsList[0]===openedCardsList[1] 也没有返回true 当数组0和1处的卡相同时,我希望此值返回true。如何检查/匹配(FontAwesome)图标类名称 因此,在创建卡片(或生成其HTML)时,您需要将fa添加到元素的“数据”(使用jQuery.data()),如下所示: function createCardHTML() { symb
openedCardsList[0]===openedCardsList[1]
也没有返回true
当数组0和1处的卡相同时,我希望此值返回true。如何检查/匹配(FontAwesome)图标
类名称
因此,在创建卡片(或生成其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;
}
根本没有返回。真的不清楚你在问什么当两张卡打开并且匹配时,应该返回true,但返回false,尝试使用a.is(b)也不起作用。应该比较卡的哪些属性才能认为它们匹配?如果你查看codepen.io上的完整代码,卡片列表显示带有背景图像的完整阵列。它被传递到“i”类。你可以将fa
添加到元素的“数据”-我指的是卡中的i
元素。这非常有效,我可以问一下是否有一种方法可以在纯Javascript中实现这一点吗?是的。选项1:使用Element.dataset
代替jQuery.data()
,使用Element.querySelector()
查找卡中的i.fa
元素。在这里尝试:(参见vanilla JS中标记为//的代码)。选项2:实际上与选项1相同,只是使用Element.setAttribute()
和Element.getAttribute()
而不是直接访问Element.dataset
;看见
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;
}
var b = $('i.fa', openedCardsList[0]).data('fa');
var c = $('i.fa', openedCardsList[1]).data('fa');
var eq = ( b && c && b === c );