-1

重複の可能性:
動的オブジェクト プロパティ名

ajax 呼び出しでオブジェクトを受け取ります: E

このオブジェクトはwidthheight、 などの多くの子要素を保持します。

console.log (E.width)のすべての要素を教えてくれますE.width

変数を割り当てると:tempElement = 'width'

console.log(e.tempElement) が「未定義」を返すのはなぜですか? また、変数によってオブジェクトの子要素にアクセスするにはどうすればよいですか?

$(function () {
    $('#widthSelect').on('change', function () {
        var updateArray = new Array();
        updateArray[0] = 'height';
        updateArray[1] = 'rim';
        updateArray[2] = 'load';
        updateArray[3] = 'speed';
        updateArray[4] = 'brand';
        updateArray[5] = 'season';
        getValues(updateArray);
    });

    function getValues(updateArray) {
        var data = updateArray.join('=&') + '=';
        $.ajax({
            type: 'POST',
            dataType: 'json',
            url: '******',
            data: data,
            success: function (e) {
                element = updateArray[0];
                console.log(e.element);
            }
        });
    }
});
4

1 に答える 1

2

これを試して:

console.log( e[element] );

このように「ドット表記」を使用するとe.element、 の後のビット.は文字通りプロパティ名として取得されます。オブジェクトにはプロパティがない"element"ため、undefined. 配列形式の表記を使用すると、角括弧内のビットが式として評価され、結果がプロパティ名として使用されます。

e.width
// is equivalent to
e["width"] // note the quotation marks
// and equivalent to
someVariable = "width";
e[someVariable]
// and also equivalent to
e[someFunction()]  // assuming someFunction() returns the string "width"
于 2013-01-19T12:15:46.330 に答える