Javascript 从父元素中删除类ID

Javascript 从父元素中删除类ID,javascript,html,dom,Javascript,Html,Dom,完整代码 对于该纸牌游戏,如果两张牌不匹配,将执行此功能 function unFlip() { openedCardsList[1].parent().removeClass('open'); openedCardsList[1].parents.toggle('open'); openedCardsList = []; console.log('unflipped') } 这应该是取消翻转卡片,但无论我在这里想说什么,它都会给我错误,无论它的切换是不是一个函数或切换是未定义

完整代码

对于该纸牌游戏,如果两张牌不匹配,将执行此功能

function unFlip() {
  openedCardsList[1].parent().removeClass('open');
  openedCardsList[1].parents.toggle('open');
  openedCardsList = [];
  console.log('unflipped')
}
这应该是取消翻转卡片,但无论我在这里想说什么,它都会给我错误,无论它的切换是不是一个函数或切换是未定义的,等等

如何从父元素中删除该类?是不是因为我之前把卡推到了这个数组中,而它无法分辨它的父元素是什么,因为它不再是数组中的元素,而是数组中的对象

openedCardsList.push(this.querySelector('i'));

openedCardsList[1]
是本机DOM对象,而不是jQuery对象。如果要使用jQuery
.parent()
方法,首先必须将对象传递给
$
函数,使其成为jQuery对象:

$(openedCardsList[1]).parent().removeClass('open');

检查下面代码段中的第三行

/*声明变量*/
//创建一个包含所有卡片的列表
让卡片列表=[
“法罗钻石”,
“fa-paper-plane-o”,
“fa锚”,
“发螺栓”,
“facube”,
“法叶”,
“fa自行车”,
“fa炸弹”,
“法罗钻石”,
“fa-paper-plane-o”,
“fa锚”,
“发螺栓”,
“facube”,
“法叶”,
“fa自行车”,
“fa炸弹”
];
重启=$(“.restart”);
甲板=$(“.deck”);
分数=$(“.score面板”);
容器=$(“.container”);
星=$(“.fa星”);
移动=$(“.moves”);
计时器=$(“.timer”);
卡片=$(“.card”);
card=document.getElementsByClassName('card');
让openedCardsList=[];
让matchedCards=[];
让start=false;
让开始=错误;
设秒=0;
点击次数=0;
设solvedCount=0;
让时间=设置间隔(增量秒,1000);
/*声明函数*/
//将函数从http://stackoverflow.com/a/2450976
函数洗牌(数组){
var currentIndex=array.length,
时间价值,
随机指数;
while(currentIndex!==0){
randomIndex=Math.floor(Math.random()*currentIndex);
currentIndex-=1;
临时值=数组[currentIndex];
数组[currentIndex]=数组[randomIndex];
数组[randomIndex]=临时值;
}
返回数组;
}
函数init(){
让洗牌牌=洗牌(卡片列表);
openedCardsList=[];
createCardHTML();
递增秒数();
}
函数newGame(){
//cardFlip();
符号=卡片。儿童(“i”);
symbol.removeClass(
“fa钻石fa纸平面o fa锚栓fa立方体fa树叶fa自行车fa炸弹fa bug”
);
init();
点击次数=0;
移动.文本(点击);
cards.removeClass(“打开”);
openedCardsList=[];
createCardHTML();
递增秒数();
}
函数createCardHTML(){
符号=卡片。儿童(“i”);
符号。每个(功能(索引、项目){
$(项目).addClass(卡片列表[索引]);
});
返回符号;
}
$(“.card”)。在(“单击”,函数cardFlip(){
如果(!this.classList.contains('open')&&openedCardsList.length<2){
$(this.toggleClass('open');
e、 预防默认值();
//this.classList.toggle('show');
openedCardsList.push(这个.querySelector('i');
console.log(openedCardsList);
控制台日志(“翻转”)
}否则{
检查格式(事件)
}
});
函数checkForMatch(事件){
如果(openedCardsList[0]==openedCardsList[1]){
openedCardsList[0]。类列表。删除('open');
openedCardsList[0]。类列表。添加('match');
openedCardsList[1]。类列表。删除('open');
openedCardsList[1]。类列表。添加('match');
console.log('matched');
openedCardsList=[];
}否则{
松开(事件)
}
}
函数unFlip(){
openedCardsList[0].classList.toggle(['open']);
openedCardsList[1]。parents.toggle('open');
openedCardsList=[];
console.log('unflipped')
}
//统计单击次数并编辑文本
美元(“.card”)。在(“单击”,单击计数器);
函数clickCounter(){
点击++;
移动.文本(点击);
}
//计算秒数并显示
函数增量秒(){
如果(匹配卡!=8){
秒+=1;
定时器文本(秒);
返回;
}
//游戏结束后应该停止计时
否则{
timer.text(秒)=Number(countMatches).toLocaleString('en');
警报(编号);
}
}
//当页面准备就绪时开始游戏
$(文件).ready(初始化);
//单击后重新启动
$(“.restart”)。单击(新建游戏)
html{
框大小:边框框;
}
*,
*::之前,
*::之后{
框大小:继承;
}
html,
身体{
宽度:100%;
身高:100%;
保证金:0;
填充:0;
}
身体{
背景:#ffffff url('../img/geometry2.png');
/*背景图案来自细微图案*/
字体系列:“尾声”,草书;
}
.集装箱{
显示器:flex;
证明内容:中心;
对齐项目:居中;
弯曲方向:立柱;
}
h1{
字体系列:“开放式Sans”,无衬线;
字体大小:300;
}
/*
*一副牌的样式
*/
.甲板{
宽度:660px;
最小高度:680px;
//背景:线性梯度(160度,#02ccba 0%,#aa7ecd 100%);
填充:32px;
边界半径:10px;
盒影:12px15px20px8pxRGBA(46,61,73,0.5);
显示器:flex;
柔性包装:包装;
证明内容:之间的空间;
对齐项目:居中;
利润率:0.03em;
}
.牌{
高度:125px;
宽度:125px;
背景#0707 ;;
字号:0;
颜色:#ffffff;
边界半径:8px;
光标:指针;
显示器:flex;
证明内容:中心;
对齐项目:居中;
盒影:5px20px0rgba(46,61,73,0.5);
}
.甲板.卡片.打开{
/*变换:rotateY(0)*/
背景:#81a37a;
游标:默认值;
变换:旋转(180度);
过渡:1s轻松;
}
.甲板.卡片.打开{
字体大小:33px;
变换:旋转(180度);
过渡:1s轻松;
}
.牌组.牌组.隐藏{
变换:旋转(180度);
过渡:1s轻松;
}
.牌.牌.比赛{
游标:默认值;
背景#456848;
字体大小:33px;
}
/*
*记分板的样式
*/
.评分小组{
文本对齐:左对齐;
宽度:345px;
边缘底部:10px;
}
.记分板.星星{
保证金:0;
填充:0;
显示:内联块;
边距:0 5px 0 0;
}
.记分板.李星{
列表样式:无;
显示:内联块;
}
.score面板。重新启动{
浮动:对;
光标:指针;
}
/*警报样式*/
.警惕{
填充:20px;
背景色:#f44336;
科洛