【发布时间】:2011-02-01 07:51:57
【问题描述】:
假设我想这样做:
var dashboard = {};
var page = "index";
$('.check').click(function(){
$(this).toggleClass("active").siblings().slideToggle('slow', function() {
dashboard['pages'][page][$(this).closest('li').attr("id")]['show'] = $(this).is(":hidden") ? 'collapsed' : 'expanded';
});
}
我收到一条错误消息:
Dashboard.pages 未定义
是否可以动态添加pages 和随后的子代,而无需检查它是否先定义,然后再检查是否定义:
dashboard['pages'] = {};
因为有时它们可能已经存在,我不想先检查树,我只想根据需要构建分支
编辑
我将pagename 更改为page 以表明页面名称会发生变化,而且我想指出这些页面实际上也可以是任何东西。
这个想法是你有任何对象可以包含带有参数的对象,而无需检查分支是否存在
看起来$extend 如前所述将是要走的路,只是不确定它是如何工作的。必须解决这个问题。
【问题讨论】:
-
抱歉 - 脚本对我来说毫无意义。使用括号索引器意味着希望动态索引对象,但您使用的是常量。再加上你“不想做这项工作”的说法,我想知道你是否知道你想要完成什么。不是试图诋毁 - 只是观察一下为什么您可能无法得到您正在寻找的答案。
-
ES6 的更好解决方案在这里。 stackoverflow.com/a/52471690/10405671
标签: javascript jquery arrays json