This question already has answers here:
What do querySelectorAll and getElementsBy* methods return?
(9个答案)
3年前关闭。
我在将事件侦听器应用于类时遇到问题。如果我尝试使用ID,它可以工作,但是如果我尝试使用类,则什么也不会发生。
我有四个div,都完全相等。我想更改一个我单击的按钮,但其他三个按钮保持不变。
可能吗?
的HTML
的CSS
JS
这不起作用
这适用于ID(“ ui”)的元素
(9个答案)
3年前关闭。
我在将事件侦听器应用于类时遇到问题。如果我尝试使用ID,它可以工作,但是如果我尝试使用类,则什么也不会发生。
我有四个div,都完全相等。我想更改一个我单击的按钮,但其他三个按钮保持不变。
可能吗?
的HTML
<div class="card">
- 6 pièces, dont 3 aveugles.
- Cuisine - électroménagers intégrés.
- 2 salles de bains modernes.
</div>
<div id="ui" class="card">
- 6 pièces, dont 3 aveugles.
- Cuisine - électroménagers intégrés.
- 2 salles de bains modernes.
</div>
<div class="card">
- 6 pièces, dont 3 aveugles.
- Cuisine - électroménagers intégrés.
- 2 salles de bains modernes.
</div>
<div class="card">
- 6 pièces, dont 3 aveugles.
- Cuisine - électroménagers intégrés.
- 2 salles de bains modernes.
</div>
的CSS
.card {
height: 100px;
width: 245px;
float: left;
box-shadow: 0 4px 8px 0 rgba(0,0,0,0.2);
font-size: 0.85em;
line-height: 1.5em;
margin: 15px;
overflow: hidden;
border-radius: 5px;
}
.expandCard {
height:500px;
width: 245px;
float: left;
box-shadow: 0 4px 8px 0 rgba(0,0,0,0.2);
font-size: 0.85em;
line-height: 1.5em;
margin: 15px;
border-radius: 5px;
}
JS
这不起作用
var teste = document.getElementsByClassName("card");
teste.addEventListener("click", function changeSize() {
teste.className = "expandCard";
});
这适用于ID(“ ui”)的元素
var teste = document.getElementByID("ui");
teste.addEventListener("click", function changeSize() {
teste.className = "expandCard";
});
最佳答案
getElementsByClassName
返回类似数组的对象。您可以使用Array.from
方法将其更改为数组。然后,使用Array#forEach
将事件侦听器绑定到每个元素。
var teste = document.getElementsByClassName("card");
Array.from(teste).forEach(v => v.addEventListener("click", function() {
this.classList.toggle('expandCard');
}));
.card {
height: 100px;
width: 245px;
float: left;
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2);
font-size: 0.85em;
line-height: 1.5em;
margin: 15px;
overflow: hidden;
border-radius: 5px;
}
.expandCard {
height: 500px;
width: 245px;
float: left;
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2);
font-size: 0.85em;
line-height: 1.5em;
margin: 15px;
border-radius: 5px;
}
<div class="card">
- 6 pièces, dont 3 aveugles. - Cuisine - électroménagers intégrés. - 2 salles de bains modernes.
</div>
<div id="ui" class="card">
- 6 pièces, dont 3 aveugles. - Cuisine - électroménagers intégrés. - 2 salles de bains modernes.
</div>
<div class="card">
- 6 pièces, dont 3 aveugles. - Cuisine - électroménagers intégrés. - 2 salles de bains modernes.
</div>
<div class="card">
- 6 pièces, dont 3 aveugles. - Cuisine - électroménagers intégrés. - 2 salles de bains modernes.
</div>
关于javascript - Javascript:无法将事件监听器应用于类? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43396291/
10-11 06:04