我需要为我的转发、喜欢和不喜欢按钮添加一个事件监听器。它们都具有相同的 ID,因此现在只有顶部推文的计数器增加。这是一个学校项目,所以我只能使用原始JS。这是 fiddle 的链接:
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;
};
最佳答案
元素 ID 在整个文档中应该是唯一的。如果您有多个具有相同 ID 的元素,则您的 HTML 无效。
来源:Can multiple different HTML elements have the same ID if they're different types?
我建议你use classes instead ,它支持具有相同类的多个元素。
然后您可以使用 document.getElementsByClassName("name")
获取具有该类的所有元素的列表。
关于javascript - 在多个相同 ID 上使用 addEventListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31753510/