下面的代码来自jQuery UI Autocomplete:
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 = ....
最佳答案
您必须像这样在数组中搜索:
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”]表示法。)
关于javascript - 如何使用JavaScript或jQuery更改数组内部对象的值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4689856/