首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在javascript中自动执行指令

如何在javascript中自动执行指令
EN

Stack Overflow用户
提问于 2018-10-19 06:01:06
回答 2查看 54关注 0票数 0

我想知道如何自动化和简化javascript代码。例如,我有3个按钮:

代码语言:javascript
复制
<button id="rock" class="pick" value="rock">rock</button>
<button id="paper" class="pick" value="paper">paper</button>
<button id="scissors" class="pick" value="scissors">scissors</button>

我选择了这些元素3次。所以我的问题是,如何在一条指令或一个函数中实现它?

代码语言:javascript
复制
var userInput = '';

document.getElementById('rock').onclick = function() {
        userInput = 'rock';
}

document.getElementById('paper').onclick = function() {
        userInput = 'paper';
}

document.getElementById('scissors').onclick = function() {
        userInput = 'scissors';
}

我只是想知道我能不能做这样的东西:

代码语言:javascript
复制
document.getElementById(element).onclick = function() {
        userInput = element.value;
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-10-19 06:11:23

是的你可以。事实上,您可以拥有多个元素,并为它们添加一个事件侦听器,这将为您提供添加的value。假设你有3个项目,都有gameCommands类。然后你会这样做:

代码语言:javascript
复制
const commands = document.querySelectorAll(".gameCommands")
const userInput;
commands.forEach(command => command.addEventListener("click", getValue)

function getValue(){
  // THIS represents the element from which we call the function in this case.
  userInput = this.value;
}
票数 2
EN

Stack Overflow用户

发布于 2018-10-19 06:09:43

代码语言:javascript
复制
inputs = document.getElementsByClassName('pick');

for (let i = 0; i < inputs.length; i++) {
  inputs[i].onclick = function() { userInput = this.value; } 
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52883211

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档