我试图避免每次重复
$('.element1')
,
$('.element1').html()
,
在
myList = [
{
element: $('.element1'),
text: element.html(),
value: 'somevalue'
},
{
element: $('.element2'),
text: element.html(),
value: 'somevalue'
}
];
但实际上它不起作用,它向我显示了这种情况:
未捕获的ReferenceError:未定义元素
我需要在" myList",中定义并保留所有内容
避免定义其他外部变量等,我想知道如何使用this
之类的东西
我非常感谢任何帮助
答案 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();
}