我有一个循环创建的列表视图:

for(var i = 0; i < data.length; i++) {
    var garage = data[i];

    $("#content-p").append(
        "<ul data-role=\"listview\">" +
                "<li><a href=\"#\" id=\"submitID\" >" +
                "<h2>"+garage.location+"</h2>" +
                "<p><b>"+garage.description+"</b></p>" +
                "<p>"+garage.address+"</p>" +
            "</a></li>" +
        "</ul><br>"
    );

    $("#submitID").click(function() {
        localStorage.setItem("garageID",garage.ID);
        $.mobile.changePage("#resP");
    });

}


现在,用户可以单击列表视图项,并且该项的ID应该存储在localStorage中。

问题:首先创建带有所有项目的完整列表视图。如果现在单击列表中的项目#2,则会从上一个项目获得ID。

最佳答案

我认为问题在于该方法尝试在没有参考或类似参考的情况下参考车库。而且您应该为特定的ID设置click方法,因为每次都会不断覆盖它。我通过使它成为一个类的单击方法来为您修复它,但是每个车库元素的ID都是其实际的车库ID。

http://jsfiddle.net/Fq3TF/1/

另外,只是提示,如果要构造要插入HTML文档中的字符串,则可以使用撇号而不是引号来避免转义。例如"<a class='submitID'>Hello World</a>"

09-18 17:36