在函数内调用对象文本元素

Calling an object literal element inside of a function

本文关键字:文本 元素 对象 调用 函数      更新时间:2023-09-26

我正在尝试在函数内部调用对象文字元素,但它不起作用......当它归结为在函数内部调用元素"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() {});
});

在你的代码中,w1不是一个数组,它是一个指向对象文字的变量。这意味着您无法像('w' + 1).image一样访问它。您有 2 个选项

  1. 使其成为数组,像数组一样访问它

    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  ...
    
  2. 使对象文本具有一些作用域,并使用方括号表示法访问它

     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 ...