在多个相同的ID上添加addEventListener

时间:2015-07-31 19:11:26

标签: javascript addeventlistener

我需要向转推添加一个事件监听器,喜欢和不喜欢按钮。它们都具有相同的ID,所以现在只有顶部的推文才会增加。这是一个学校的项目,所以我只能使用原始的JS。这是一个小提琴的链接:

https://jsfiddle.net/1sc7g5ko/

这就是我的JS看起来像

var retweets;
retweets = 0;

var likes;
likes = 0;

var dislikes;
dislikes = 0;

document.getElementById("retweet").addEventListener("click", retweetClicked);

function retweetClicked(){
    document.getElementById("retweet").innerHTML = retweets += 1;
};

document.getElementById("likes").addEventListener("click", likeClicked);

function likeClicked(){
    document.getElementById("likes").innerHTML = likes += 1;
};

document.getElementById("dislikes").addEventListener("click", dislikeClicked);

function dislikeClicked(){
    document.getElementById("dislikes").innerHTML = dislikes += 1;
};

1 个答案:

答案 0 :(得分:3)

元素ID在整个文档中应该是唯一的。如果您有多个具有相同ID的元素,则您的HTML无效。

来源:Can multiple different HTML elements have the same ID if they're different types?

我建议你use classes instead,它支持多个元素具有相同的类。

然后,您可以使用document.getElementsByClassName("name")获取该类的所有元素的列表。