javascript - 如何在不使用 jQuery 的情况下使用 onclick 函数检查类名

标签 javascript html onclick

我想检查一个元素在点击时是否有类名。我有调用该函数的点击事件,但没有任何内容记录到控制台。有趣的是,document.write 有效,但无论我单击什么,即使 HTML 元素具有类名,它也会记录 else。

HTML

<p>What is 2+2?</p>
<a href="#" class="answer wrong">5</a>
<a href="#" class="answer correct">4</a>
<a href="#" class="answer wrong">7</div>
<a href="#" class="answer wrong">2</div>

CSS

var wrongMsg = "Sorry, that's not the answer"
var correctMsg = "Correct!"
var answers = document.getElementsByClassName("answer");

for (var i=answers.length; i--;){
    answers[i].addEventListener('click', checkMulti);
};

function checkMulti(){
    if ( this.className == "correct" ){
        console.log(correctMsg);
    }else{
        console.log(wrongMsg);
    }
}

最佳答案

您需要使用 classList 中的方法 contains

var wrongMsg = "Sorry, that's not the answer"
var correctMsg = "Correct!"
var answers = document.getElementsByClassName("answer");

for (var i = answers.length; i--;) {
  answers[i].addEventListener('click', checkMulti);
};

function checkMulti() {
  if (this.classList.contains("correct")) {
    console.log(correctMsg);
  } else {
    console.log(wrongMsg);
  }
}
<p>What is 2+2?</p>
<a href="#" class="answer wrong">5</a>
<a href="#" class="answer correct">4</a>
<a href="#" class="answer wrong">7</div>
<a href="#" class="answer wrong">2</div>

资源

关于javascript - 如何在不使用 jQuery 的情况下使用 onclick 函数检查类名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48796732/

相关文章:

javascript - 模态关闭后返回焦点

javascript - Three.js 移动鼠标前黑/白屏

html - 嵌套的 DIV 定位不正确

html - 错误 :Failed to execute 'atob' on 'Window' : The string to be decoded is not correctly encoded

reactjs - 图标点击问题

javascript - LeafletJS : Load Tile Layer based on bounding box

javascript - 获取链接函数中单击元素的数据属性

html - hrefs 中图像下方的蓝线

javascript - 如何使用 onclick 交换两个元素的位置,包括它们的类/id?

javascript - 镜像滚动效果开启。在两个容器之间单击