当前位置: 首页 > 知识库问答 >
问题:

如何在单击事件中追加和删除字体图标(Javascript)

姬坚成
2023-03-14

我正在尝试编写JavaScript代码,它将应用一个FA刻度图标到一个点击的日子,如果那里还没有刻度,如果有刻度,则删除该刻度。我已经编写了附加图标的代码,但无法确定如何删除它

这是我的

HTML

<div class="day">1</div>
<div class="day">2</div>
<div class="day">3</div>
<div class="day">4</div>
<div class="day">5</div>
<div class="day">6</div>
<div class="day">7</div>
<div class="day">8</div>
<div class="day">9</div>
<div class="day">10</div>

JS


const days = document.getElementsByClassName('day')
for (let i = 0; i < days.length; i++) {
    days[i].addEventListener('click', function(e){
        const tick = document.createElement('i');
        tick.classList = 'fas fa-check-square fa-4x'
        this.append(tick);
    });    
}

共有2个答案

白子昂
2023-03-14

您可以尝试将id添加到图标中&检查id以确定它是否存在。

const days = document.getElementsByClassName('day')
for (let i = 0; i < days.length; i++) {
  days[i].addEventListener('click', function(e){
    const check_square_icon = `check-square-icon-${i}`
    if(document.contains(document.getElementById(check_square_icon))) {
        document.getElementById(check_square_icon).remove();
    } else {
      const tick = document.createElement('i');
      tick.id = `check-square-icon-${i}`
      tick.classList = 'fas fa-check-square fa-4x'
      this.append(tick);
    }
    
  })    
}
司空胤
2023-03-14

您可以检查元素i是否已经存在,如果不存在,则创建元素并将类添加到元素中。如果存在,则移除该元素。

您可以尝试以下方式:

null

const days = document.getElementsByClassName('day')
for (let i = 0; i < days.length; i++) {
    days[i].addEventListener('click', function(e){        
        if(!this.querySelectorAll('i').length){ // check if i is not exist
          const tick = document.createElement('i');
          this.append(tick);
          tick.classList.add('fas', 'fa-check-square', 'fa-4x'); // add classes
        }
        else{
          var elem = this.querySelector('i');
          elem.parentNode.removeChild(elem); // remove i
        }
        
    })    
}
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" integrity="sha384-wvfXpqpZZVQGK6TAh5PVlGOfQNHSoD2xbE+QkPxCAFlNEevoEH3Sl0sibVcOQVnN" crossorigin="anonymous">
<div class="day">1</div>
<div class="day">2</div>
<div class="day">3</div>
<div class="day">4</div>
<div class="day">5</div>
<div class="day">6</div>
<div class="day">7</div>
<div class="day">8</div>
<div class="day">9</div>
<div class="day">10</div>
 类似资料:
  • 本文向大家介绍addEventListener()和removeEventListener()追加事件和删除追加事件,包括了addEventListener()和removeEventListener()追加事件和删除追加事件的使用技巧和注意事项,需要的朋友参考一下 addEventListener()与removeEventListener()用于追加事件和删除追加。所有的DOM节点中都包含这两

  • 问题内容: 我有一个id为id的按钮。我将此元素附加了两个jQuery事件 1。 2。 但是每次它给我 问题答案: 您需要使用超时来检查第一次点击后是否还有另一次点击。 这是窍门: 用法:

  • 问题内容: 因此,我进行了一些研究,并在代码中将按钮定义为对象之后 这是我的问题 那你的活动… 问题: 当我输入“ this”时,它说: 我不知道为什么? 这是.java文件中的代码 问题答案: View中的SetOnClickListener(Android.View.view.OnClickListener)无法应用于(com.helloandroidstudio.MainActivity)

  • 问题内容: 我正在尝试添加和删除被单击的li元素上的类。这是一个菜单,当我单击每个li项目时,我希望它获得该课程,而所有其他li项目都将其删除。因此,一次只有一个li项目上课。这就是我走了多远(见小提琴)。我不确定如何使“ about-link”从当前类开始,但是当单击其他li项之一时将其删除吗? 问题答案: 为什么不尝试这样的事情?

  • 当我在标记中单击时,警报消息是:未定义 但是如果我把它放在变量映射中,它就起作用了!(显示经纬度) 有人知道为什么它在标记器里不起作用吗?

  • 本文向大家介绍如何在JavaScript中删除非单词字符?,包括了如何在JavaScript中删除非单词字符?的使用技巧和注意事项,需要的朋友参考一下 删除非单词字符 要删除非单词字符,我们需要使用正则表达式。删除非单词字符背后的逻辑是,只用nothing('')替换非单词字符。 示例 在下面的示例中,有许多非单词字符,并且在它们之间存在一个名为“ Tutorix是最好的电子学习平台”的文本。因此