我正在尝试在函数内部调用一个对象文字元素而它无法工作......当它向下调用函数内部的元素“image”时,它会给我一个未定义的错误。
var w1 = {warframeName:"Ash", health:450, shield:300, power:150, armor:65.0, sprint:1.15, stamina:100, image:"images/warframes/ash.jpg"};
$(".woption").click(function() {
var wClass = $(this).attr('class').split(' ')[0];
for(var x = 1; x <23; x++) {
if(wClass == "w"+x) {
$(".warframe_selector").css("background", "url(" + ('w'+x).image +") no-repeat", "important");
$(".warframe_selector").css( "background-size", "100%" );
} else {}
}
$("#cover").fadeOut(function() {});
$(".warframe_option").fadeOut(function() {});
});
答案 0 :(得分:2)
在你的代码中w1
不是一个数组,它是一个指向对象文字的变量。这意味着您无法像('w' + 1).image
那样访问它。你有2个选择
将其设为数组,像数组一样访问
var w = [{warframeName:"Ash", health:450, shield:300, power:150, armor:65.0, sprint:1.15, stamina:100, image:"images/warframes/ash.jpg"}];
... w[x].image ...
使对象文字有一些范围,并使用方括号表示法来访问它
window.myNamespace = {};
window.myNamespace.w1 = {warframeName:"Ash", health:450, shield:300, power:150, armor:65.0, sprint:1.15, stamina:100, image:"images/warframes/ash.jpg"}
... window.myNamespace['w' + x].image ...