我问这个问题很傻。自春假以来,我一直在尝试解决一个JavaScript问题。
我动态创建div来包含产品的评分。但是,当我单击其中之一时,它总是返回最后一个。
for(var i=0; i < 5; i++) {
// Create Class called divReview
var divReview = document.createElement("div");
divReview.className = "divReview";
counter_ratings++;
var s = counter_ratings.toString();
divReview.id = "ratings" + s;
divReview.innerHTML = divReview.id;
$( divReview ).click(function() {
alert("You clicked " + divReview.innerHTML);
});
mainContainer.appendChild(divReview);
}
这是小提琴:
http://jsfiddle.net/alvasay/a9GZq/4/
我敢肯定这是一个简单的问题,但是我看不出我在哪里做错了。谢谢!
最佳答案
正如mglison所说,后期绑定。但是,替代解决方案是在点击处理程序中使用this
代替divReview
来引用要单击的元素。
$( divReview ).click(function() {
alert("You clicked " + this.innerHTML);
});
http://jsfiddle.net/a9HAH/
关于javascript - Javascript Multiple Divs具有相同的类名,但ID不同。单击任何一个时始终返回上一个div,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22572631/