[英]get the different values from button with same class name
I want to get the values from clicking the button with same class name, but whenever I clicked the button it shows undefined.我想通过单击具有相同 class 名称的按钮来获取值,但是每当我单击该按钮时,它都会显示未定义。
var clr; const btn = document.querySelectorAll('.color'); function myFunction() { for (var i = 0; i < btn.length; i++) { clr = btn[i].value; console.log(clr); } }
<div class="color"> <button class="btn" value="#BADA55" onclick="myFunction()"> Yellow </button> <button class="btn" value="#10A426" onclick="myFunction()"> Green </button> <button class="btn" value="#8787DE" onclick="myFunction()"> Purple </button> </div>
const btn = document.querySelectorAll('.color');
gets the div not the buttons.获取 div 而不是按钮。 Change that to
const btn = document.querySelectorAll('.btn');
将其更改为
const btn = document.querySelectorAll('.btn');
: :
var clr; const btn = document.querySelectorAll('.btn'); function myFunction() { for (var i = 0; i < btn.length; i++) { clr = btn[i].value; console.log(clr); } }
<div class="color"> <button class="btn" value="#BADA55" onclick="myFunction()"> Yellow </button> <button class="btn" value="#10A426" onclick="myFunction()"> Green </button> <button class="btn" value="#8787DE" onclick="myFunction()"> Purple </button> </div>
If you only want the value from the button being clicked, then change your code to如果您只想要单击按钮的值,则将代码更改为
function myFunction(btn) { console.log(btn.value); }
<div class="color"> <button class="btn" value="#BADA55" onclick="myFunction(this)"> Yellow </button> <button class="btn" value="#10A426" onclick="myFunction(this)"> Green </button> <button class="btn" value="#8787DE" onclick="myFunction(this)"> Purple </button> </div>
do it in this way it will give you exact result这样做它会给你准确的结果
function myFunction(event) { clr = event.target.value; console.log(clr); }
<div class="color"> <button class="btn" value="#BADA55" onclick="myFunction(event)"> Yellow </button> <button class="btn" value="#10A426" onclick="myFunction(event)"> Green </button> <button class="btn" value="#8787DE" onclick="myFunction(event)"> Purple </button> </div>
First: scripting where scripting should be (no inline handlers).第一:脚本应该是脚本(没有内联处理程序)。 So add an event listener to the
document
, and let it check if the target
(the element clicked) has classname btn
.因此,向
document
添加一个事件监听器,并让它检查target
(单击的元素)是否具有类名btn
。 In that case: iterate through the an Array of elements with className btn
( Array.from(document.querySelectorAll(".btn"))
) using Array.forEach
to display the values of those elements.在这种情况下:使用
Array.forEach
遍历具有 className btn
( Array.from(document.querySelectorAll(".btn"))
)的元素数组以显示这些元素的值。
document.addEventListener("click", myFunction); function myFunction(evt) { console.clear(); if (evt.target.classList.contains("btn")) { // a button.btn was clicked, so let report = `You clicked button with value ${evt.target.value}. Other.btn values:`; let values = []; Array.from(document.querySelectorAll(".btn")).forEach(val => val.== evt.target && values.push(val;value)). console.log(`${report} ${values,join("; ")}`); } }
<div class="color"> <button class="btn" value="#BADA55"> Yellow </button> <button class="btn" value="#10A426"> Green </button> <button class="btn" value="#8787DE"> Purple </button> </div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.