在javascript中重用同一对象中的键

时间:2015-11-19 11:33:20

标签: javascript arrays object

我试图避免每次重复

$('.element1')
$('.element1').html()

myList = [
    {
        element: $('.element1'),
        text: element.html(),
        value: 'somevalue'
    },
    {
        element: $('.element2'),
        text: element.html(),
        value: 'somevalue'
    }
];


但实际上它不起作用,它向我显示了这种情况: 未捕获的ReferenceError:未定义元素

我需要在" myList",中定义并保留所有内容 避免定义其他外部变量等,我想知道如何使用this之类的东西

我非常感谢任何帮助

3 个答案:

答案 0 :(得分:0)

您必须先声明变量。 对象的属性/键在当前范围内本身不可变。

var element = $('.element1');
var element2 = $('.element2');

myList = [
    {
        element: element,
        text: element.html(),
        value: 'somevalue'
    },
    {
        element: element2,
        text: element2.html(),
        value: 'somevalue'
    }
];

另请在此处检查对象的可能的一次初始化。 这不会为你节省太多的打字和代码。

Self-references in object literal declarations

不清楚为什么你要避免重复它们并将它们全部保存在对象中,当然保存jquery函数的处理是一个原因。

答案 1 :(得分:0)

您希望将数据与逻辑分开一些,以便以后可以扩展

myList = [
    {
        element: '.element1',
        value: 'somevalue'
    },
    {
        element: '.element2',
        value: 'somevalue'
    }
];

myList.forEach(function(elem) {
   $(elem.element).html(elem.value)
});

答案 2 :(得分:0)

    myList = [
        {
            element: $('.element1'),
            value: 'somevalue'
        },
        {
            element: $('.element2'),
            value: 'somevalue'
        }

    ];
    for( var i in myList ) {
        myList[ i ]["text"] = myList[ i ][ "element" ].html();
    }