下面的代码来自 jQuery UI 自动完成:
var projects = [ { value: "jquery", label: "jQuery", desc: "the write less, do more, JavaScript library", icon: "jquery_32x32.png" }, { value: "jquery-ui", label: "jQuery UI", desc: "the official user interface library for jQuery", icon: "jqueryui_32x32.png" }, { value: "sizzlejs", label: "Sizzle JS", desc: "a pure-JavaScript CSS selector engine", icon: "sizzlejs_32x32.png" } ];
例如,我想更改 jquery-ui 的 desc 值 。我怎样才能做到这一点?
另外,有没有更快的方法来获取数据?我的意思是给对象一个名称以获取其数据,就像数组中的对象一样?所以它会像jquery-ui.jquery-ui.desc = ....
jquery-ui.jquery-ui.desc = ....
您必须在数组中搜索,例如:
function changeDesc( value, desc ) { for (var i in projects) { if (projects[i].value == value) { projects[i].desc = desc; break; //Stop this loop, we found it! } } }
并像使用它一样
var projects = [ ... ]; changeDesc ( 'jquery-ui', 'new description' );
更新:
为了更快地获得它:
var projects = { jqueryUi : { value: 'lol1', desc: 'lol2' } }; projects.jqueryUi.desc = 'new string';
(根据 Frédéric 的评论,你不应该在对象键中使用连字符,或者你应该使用 “jquery-ui” 和 projects[“jquery-ui”] 表示法。)