简体   繁体   English

如何通过 id 将获取元素的值分配到 Javascript 中的数组中?

[英]How can I assign value of get element by id into array in Javascript?

as you can see I have a lot of repetitive code below...如您所见,我在下面有很多重复的代码...

var c0 = document.getElementById('c0');
var c1 = document.getElementById('c1');
var c2 = document.getElementById('c2');
var c3 = document.getElementById('c3');

var c4 = document.getElementById('c4');
var c5 = document.getElementById('c5');
var c6 = document.getElementById('c6');
var c7 = document.getElementById('c7');

var c8 = document.getElementById('c8');
var c9 = document.getElementById('c9');
var c10 = document.getElementById('c10');
var c11 = document.getElementById('c11');

c0.addEventListener("click", function() {revealCard(0); });
c1.addEventListener("click", function() {revealCard(1); });
c2.addEventListener("click", function() {revealCard(2); });
c3.addEventListener("click", function() {revealCard(3); });

c4.addEventListener("click", function() {revealCard(4); });
c5.addEventListener("click", function() {revealCard(5); });
c6.addEventListener("click", function() {revealCard(6); });
c7.addEventListener("click", function() {revealCard(7); });

c8.addEventListener("click", function() {revealCard(8); });
c9.addEventListener("click", function() {revealCard(9); });
c10.addEventListener("click", function() {revealCard(10); });
c11.addEventListener("click", function() {revealCard(11); });

So I want to shorten this obviously by creating for loop.所以我想通过创建 for 循环来明显地缩短它。 I did this in following way:我通过以下方式做到了这一点:

var c = [];
for(i=0; i<12; i++)
{
    c[i] = document.getElementById('c'+i);
    c[i].addEventListener("click", function() {revealCard(i); });
}

Unfortunately it didn't work.. I didn't find similar question so here I am.不幸的是它没有用..我没有找到类似的问题,所以我在这里。 I do not have any errors in console so it's strange for me.我在控制台中没有任何错误,所以这对我来说很奇怪。 Everything seems to be correct but still it does not work.一切似乎都是正确的,但仍然无法正常工作。 I would be grateful if you helped me.如果你能帮助我,我将不胜感激。

A more preferable way would be to add a class to the joint parent of those elements, and use addEventListener on it.更可取的方法是将class添加到这些元素的联合父级,并在其上使用addEventListener That way, with event bubbling , you can listen to a click event and act according to the specified element.这样,通过事件冒泡,您可以监听点击事件并根据指定的元素进行操作。

For example,例如,

 const wrapper = document.querySelector('.wrapper'); wrapper.addEventListener('click', event => { console.log(event.target.id) })
 <div class="wrapper"> <button class="some-button" id="c0"> c0 </button> <button class="some-button" id="c1"> c1 </button> <button class="some-button" id="c2"> c2 </button> </div>

Fiddle: https://jsfiddle.net/tkore/y9dmkco2/小提琴: https://jsfiddle.net/tkore/y9dmkco2/

You can modify the code and use it like this -您可以修改代码并像这样使用它 -

let obj = {};
for(let i=0; i<12; i++)
{
    obj[`c${i}`] = document.getElementById(`c${i}`);
    obj[`c${i}`].addEventListener("click", function() {revealCard(i); });
}

You didn't declare your i variable which caused a bug, try using let您没有声明导致错误的i变量,请尝试使用let

 var c = []; for (let i = 0; i < 3; i++) { c[i] = document.getElementById('c' + i); c[i].addEventListener("click", function() { console.log(i); }); }
 <div id="c0">test</div> <div id="c1">test</div> <div id="c2">test</div>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何通过比较 arrays 中的 id 将第一个数组中的值分配给第二个数组中的新键。 在 javascript - How can i assign value in first array to new key in second array by comparing id in both arrays . in javascript 如何为数组元素分配空值? - How can I assign null value to an array element? 如何使用 JavaScript 将数据 ID 值(id)存储在数组中? - How can i get data-id value(id) store in Array using JavaScript? 我如何在 Javascript 中转换元素 id 中的变量值 - How I Can Conver Variable value in Element id in Javascript 在Javascript对象数组中,如果该元素本身是一个对象数组,如何通过名称/ ID来定位特定的数组元素? - In a Javascript array of objects, how can I target a specific array element by name/ID if that element is an array of objects itself? 如何将JavaScript数组分配给Ftllist? - How can i assign javascript array to Ftllist? 我如何获得数组React js中的第一个唯一ID元素和最后一个唯一ID元素 - how can I get the first unique ID element and last unique ID element in an array React js 如何在javascript数组元素中显示正确的值? - How can I show the correct value in a javascript array element? JavaScript-如何获取元素的ID - JavaScript - How do i get ID of Element 如何使用javascript获取元素形式值的数组? - How can I get an array of element form values with javascript?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM