admin管理员组文章数量:1356294
I have three button in html:
<button value="Rock" onclick="displayResult()">Rock</button>
<button value="Paper" onclick="displayResult()">Paper</button>
<button value="Scissors" onclick="displayResult()">Scissors</button>
In displayResult() function (wrriten once for 3), how can I get value from the button that I click? If I set ids for all 3 button, I have to write 3 display function to get value from a seperate button:
let displayResultForRock = () => {
let value = document.getElementById('rock').value;
}
I have three button in html:
<button value="Rock" onclick="displayResult()">Rock</button>
<button value="Paper" onclick="displayResult()">Paper</button>
<button value="Scissors" onclick="displayResult()">Scissors</button>
In displayResult() function (wrriten once for 3), how can I get value from the button that I click? If I set ids for all 3 button, I have to write 3 display function to get value from a seperate button:
let displayResultForRock = () => {
let value = document.getElementById('rock').value;
}
Share
Improve this question
asked Apr 22, 2022 at 21:06
Duy DuyDuy Duy
6211 gold badge6 silver badges9 bronze badges
4 Answers
Reset to default 4Just attach event listeners to the buttons, and then log the textContent
of each.
const buttons = document.querySelectorAll('button');
buttons.forEach(button => {
button.addEventListener('click', handleClick, false);
});
function handleClick() {
console.log(this.textContent);
}
<button>Rock</button>
<button>Paper</button>
<button>Scissors</button>
Or use event delegation:
const buttons = document.querySelector('#buttons');
buttons.addEventListener('click', handleClick, false);
function handleClick(e) {
if (e.target.matches('button')) {
console.log(e.target.textContent);
}
}
<div id="buttons">
<button>Rock</button>
<button>Paper</button>
<button>Scissors</button>
</div>
Please use this code. you can update your displayResult
function like this.
function displayResult(event) {
console.log(event.target.value)
}
<button value="Rock" onclick="displayResult(event)">Rock</button>
<button value="Paper" onclick="displayResult(event)">Paper</button>
<button value="Scissors" onclick="displayResult(event)">Scissors</button>
const btns = document.querySelectorAll("button")
btns.forEach(b => b.onclick = e => result.innerText = e.target.value)
<button value="Rock">Rock</button>
<button value="Paper">Paper</button>
<button value="Scissors">Scissors</button>
<div id="result"></div>
why not just pass the value as parameter to the function like this:
<button value="Rock" onclick="displayResult("Rock")">Rock</button>
本文标签: javascriptget value from the button element that I clickStack Overflow
版权声明:本文标题:javascript - get value from the button element that I click - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1743962663a2569315.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论