javascript - 如何将空字符串从 HTML 和 JavaScript 中的 onclick 更改为字符串
问题描述
在下面的代码中,即使单击 HTML 中的 svg,我也无法将 playerInput 更改为以下元素之一。当我控制台日志时,他们返回空字符串,我可以知道如何解决这个问题吗?
<html>
<input type="image" src="images/rock.svg" class="rock" onclick ="playerClick()">
<input type="image" src="images/scissor.svg" class="scissor" onclick ="playerClick()">
<input type="image" src="images/paper.svg" class="paper" onclick ="playerClick()">
<script>
let playerInput = "";
function playerClick() {
if (document.getElementsByClassName("rock")){
playerInput === "Rock"
} else if (document.getElementsByClassName("scissor")){
playerInput === "Scissor"
} else if (document.getElementsByClassName("paper")){
playerInput === "Paper"
}
return playerInput;
}
</script>
解决方案
这样您就可以console.log
点击图像。
function playerClick(selection){
console.log(selection)
}
<input type="image" src="images/rock.svg" class="rock" onclick ="playerClick('rock')">
<input type="image" src="images/scissor.svg" class="scissor" onclick ="playerClick('scissor')">
<input type="image" src="images/paper.svg" class="paper" onclick ="playerClick('paper')">
如果你想使用并返回基于 的值class
,你可以这样做:
let inputs = document.querySelectorAll('input');
inputs.forEach(input => input.addEventListener('click', ()=> alert(input.classList)));
<input type="image" src="images/rock.svg" class="rock">
<input type="image" src="images/scissor.svg" class="scissor">
<input type="image" src="images/paper.svg" class="paper">
推荐阅读
- azure - Azure 服务总线 | 启用会话 | 会话没有收到
- docker - 如何在我的 dockerfile 中获取 bitbucket 存储库变量并将它们复制到我的 docker 映像中,例如 COPY bitbucket_variables /app
- oracle - CLOB 12c 上的 Oracle REGEXP_REPLACE
- docker - Docker 卷不共享文件
- javascript - Potree:如何有效地计算一个点的法线?
- c++ - bool vs void vs print 或 std::cout
- visual-studio - 当我尝试使具有正常角色的某人静音时,它给了我您不能使具有相同或更高角色的某人静音?
- jwt - 如何在 multer 中包含 JWT?
- ansible - 如何可视化我的应用程序生态系统?
- bash - 带有一个附加前置参数的 Bash 调用 exec