我需要能够在“$(”#brand“)。html”部分底部使用x
变量
for (x = 0; x < productList.length; x++){
$("#drug" + x).html("<h2>"+ productList[x].brandName + "</h2>");
$("#drug" + x).click(function(){
$.getJSON("pharmaceutical.json", function() {
alert(productList, x);
drugData = data.pharmaceutical.products;
$("#brand").html(drugData[x].brandName);
});
});
}
我一直在控制台中收到此错误
未捕获的ReferenceError:未定义数据
我相信这是因为x不在同一范围内。
任何帮助都会很棒!!!
答案 0 :(得分:0)
你可以创建一个闭包&amp;参考变量。 希望这段代码有用(未经过测试)。
for (x = 0; x < productList.length; x++) {
$("#drug" + x).html("<h2>" + productList[x].brandName + "</h2>");
// creating a closure
(function(i) {
$("#drug" + i).click(function() {
$.getJSON("pharmaceutical.json", function() {
alert(productList, i);
drugData = data.pharmaceutical.products;
$("#brand").html("hello" + drugData[i].brandName);
});
});
}(x))
}
答案 1 :(得分:0)
我建议你改为:
for (x = 0; x < productList.length; x++) {
$("#drug" + x).html("<h2>" + productList[x].brandName + "</h2>");
}
$("[id^='drug']").click(function() { //<----gives you all the nodes with id="drug1"..
var x = this.id.match(/[0-9]+/)[0]; // you can get it this way
$.getJSON("pharmaceutical.json", function(data) { // <----get the response
alert(productList, x);
drugData = data.pharmaceutical.products; // find the specific one
$("#brand").html(drugData[x].brandName); // place it in the DOM
});
});