美元.每个在$.每个使用JS多维对象
$.each within $.each using JS multi-dimensional obj
我为一些页脚内容创建了一个对象,如下所示:
var $footerObj = {
"one" : {
"title" : "One",
"links" : {
"A" : {
"title" : "One A",
"url" : "#",
"external" : true
},
"B" : {
"title" : "One B",
"url" : "#",
"external" : true
},
"C" : {
"title" : "One C",
"url" : "#",
"external" : false
}
}
},
"two" : {
"title" : "Two",
"links" : {
"A" : {
"title" : "Two A",
"url" : "#",
"external" : false
},
"B" : {
"title" : "Two B",
"url" : "#",
"external" : false
}
}
}
};
我正在尝试使用jQuery的$。每个输出到页脚链接。
$.each($footerObj, function(key, value) {
$('.footer__links').append('<ul class="footer__list"></ul>');
var $footerList = $('.footer__list');
$.each(value.links, function(subkey, subvalue) {
$footerList.append('<li class="footer__item"><a class="footer__link" href="' + subvalue.url + '">' + subvalue.title + '</a></li>');
});
});
这就是我所拥有的,但这会导致"two"中的数据输出两次。我相信这是有价值的。第二个$中的链接。每一个都是错误的,但我已经疯了,尝试所有不同的变化没有运气-任何帮助将不胜感激!
谢谢
当你添加到一个类时,它会添加到每个具有该类的项上,在第二个对象上,将有两个具有该类的项,在第三个对象上将有三个,等等。解决方案是附加到在该循环中创建的元素,而不是附加到具有该类名的每个元素。在外部each()
循环中这样做:
var $footerList = $('<ul class="footer__list"></ul>');
$('.footer__links').append($footerList);
所以它看起来像这样:
$.each($footerObj, function(key, value) {
var $footerList = $('<ul class="footer__list"></ul>');
$('.footer__links').append($footerList);
$.each(value.links, function(subkey, subvalue) {
$footerList.append('<li class="footer__item"><a class="footer__link" href="' + subvalue.url + '">' + subvalue.title + '</a></li>');
});
});
在第二个$.each
中,您调用$footerList
来附加您的元素。
该变量在第一个$.each
中设置,并检索类为footer__list
的所有元素。在第一个$.each
的第二次迭代中,您将有两个
<ul class="footer__list"></ul>
因此,$('.footer__list');
将返回2个元素,您将添加
'<li class="footer__item"><a class="footer__link" href="' + subvalue.url + '">' + subvalue.title + '</a></li>
到这两个元素,两个<ul>
相关文章:
- 使用JS将数组转换为json对象
- 查看JS对象的所有键,甚至是getter定义的键
- 在URL中传递JS对象
- 为什么要包装每一个原型“;类“;JS中具有匿名函数的对象
- 当属性不一致时,如何根据属性对JS对象列表进行排序
- Node.js中的JavaScript原型对象效率
- 如何使用自定义功能覆盖时间轴对象.js时间轴对象的_repaintMinorText
- 如何在第三轴上旋转 3D 对象.js
- 三个中是否有容器类型对象.js来转换一组子对象
- 从 JSON 对象 - JS 周围删除双引号
- 删除对象JS中的节点
- 在对象数组中搜索非空对象JS
- 按未定义的值从数组中选择对象?JS
- 递归循环,直到我们'重新处理对象[JS]
- 向窗口对象-js添加新属性时得到通知
- 如何包含对象/关联数组到对象(js)
- 加载依赖于页面的面向对象JS属性的最好方法是什么?
- 合并新的数组对象到现有的对象js
- 获取带有下划线的数组中的对象.js
- 在带有下划线的嵌套集合中查找对象.js