我写了一些函数。
function createGarage(id) {
var id = 'data.models.'+id+'.pictures';
$.ajax({
url: 'models.json',
type: 'get',
dataType: 'json',
error: function(data){},
success: function(data){
$.each(id, function(name, value) {
$('#view').append('<img src="./' + value + '" width="100%" class="foto">');
});
}
});
}
我收到错误: TypeError:无效&#39; in&#39;操作数a;
在每个循环的部分。我认为问题是var id,我可以这样做吗?这个id我需要访问JSON中的有效数据。
在HTML中,我将此函数称为:onClick="createGarage(g21)
&#34;
{
"name": "kalkulator garaży",
"version": "1.0",
"models": {
"g1": {
"id": "1",
"name": "Garaż dwuspadowy (lewo-prawo) z blachy, podwójny",
"pictures": {
"0": "/images/dwuspad/trawa-dwojka.png",
"1": "/images/dwuspad/cien.png",
"2": "/images/dwuspad/dach-blacha.png",
"3": "/images/dwuspad/drzwi-lewy-blacha.png",
"4": "/images/dwuspad/drzwi-prawy-blacha.png",
"5": "/images/dwuspad/przod-lewy-blacha.png",
"6": "/images/dwuspad/przod-prawy-blacha.png",
"7": "/images/dwuspad/bok-blacha.png"
}
},
答案 0 :(得分:2)
您可以使用解决方案
function createGarage(id) {
$.ajax({
url: 'models.json',
type: 'get',
dataType: 'json',
error: function(data){},
success: function(data){
$.each(data.models[id].pictures, function(i){
$('#view').append(`<img src=".${data.models[id].pictures[i]}" width="100%" class="foto">`);
});
}
});
}
应该是Onclick按钮
<button onClick="createGarage('g1');">Click Me!!!</button>
您在传递值的onClick
方法中缺少引号。
希望这会对你有所帮助。
答案 1 :(得分:0)
删除此行
var id = 'data.models.'+id+'.pictures';
并使用
$.each(data.models[id].pictures, ...