gpt4 book ai didi

jQuery 每个数组

转载 作者:行者123 更新时间:2023-12-01 02:03:50 25 4
gpt4 key购买 nike

analyse : function (that) {

var a = new Array();
var x = 0;

$(that).children("li").each(function(){
console.log('test1');
a[x]['name'] = 'f';
a[x]['link'] = 'UUUUUUUUUUU';
console.log('test2');
x++;
})

return a;
}

我稍后会尝试创建一个数组来存储 PHP 菜单中的层次结构。

控制台不会向我显示“test2”,我做错了什么?

<小时/>

在 Didier G 的帮助下转变成这样:

analyse : function (that) {
return $(that).children('li').map(function() {
var b = {
name: $(this).children('a').text(),
link: $(this).children('a').attr('href')
};
if ($(this).children('ul').size() > 0) {
b.childs = mcms.module.analyse($(this).children('ul'));
}
return b;
});
}

所以如果我说 var y = analysis('#menu'); 我得到了全部! ^^

最佳答案

'a[x]' 此时未定义。您必须首先构建一个对象并将其分配给“i”位置(“x”确实不是迭代器的标准名称,感谢@Cito):

var a = new Array();
var i = 0;

$(that).children("li").each(function(){
console.log('test1');
a[i] = { name: 'f', link: 'UUUU' };
console.log('test2');
i++;
});

注意:您的代码在each() 之后缺少;。尽管省略分号是有效的 javascript,但我认为最好明确使用它们以避免误解。

<小时/>

创建数组可以使用 .map() 来实现

var a = [];

// .map() returns a jquery array, to obtain a pure javascript array, you must call .toArray() afterwards
a = $(that).children('li').map(function() {
return { name: 'f', link: 'UUUU' };
}).toArray();

这是一个jsfiddle来说明一下

这个article涵盖了使用 .each() 和 .map() 从 jquery 中的列表构建数据集合。

关于jQuery 每个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8285124/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com