我问这个问题很傻。自春假以来,我一直在尝试解决一个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/

10-12 07:24
查看更多