如何在javascript中将菜单转换为多维关联数组
How to convert menu to Multi-dimensional associative arrays in javascript?
这是我在html中的菜单布局
<ul>
<li>Item A
<ul>
<li>Item A1</li>
<li>Item A2</li>
</ul>
</li>
<li>Item B
<ul>
<li>Item B1</li>
<li>Item B2</li>
<li>Item B3</li>
</ul>
</li>
</ul>
如何将此布局转换为以下多维关联JS数组?
var nav = [
{ "title" : "Item A",
"submenu" : [ "Item A1", "Item A2" ] },
{ "title" : "Item B",
"submenu" : [ "Item B1", "Item B2", "Item B3"] }
];
谁来告诉我怎么做
您需要在每个li和li的每个子菜单之后提取子菜单
var finalObj=new Array();
$("ul li:not(ul li ul li)").each(function(){
var objtime=new Object();
objtime.title=$(this).clone()
.children()
.remove()
.end()
.text().trim();
var tempArray=new Array();
$(this).children("ul").children("li").each(function(){
tempArray.push($(this).text());
});
objtime.subtitle=tempArray;
finalObj.push(objtime);
});
http://jsfiddle.net/e6vq1m4m/2/如果我没理解错的话,您可能想要这样做。
var menuArray = [],
subArray;
$('ul.first > li').each(function(i){
var firstMenu = $.trim( $(this).find("a:first").text() );
subArray = [];
$(this).find('ul > li a').each(function(i){
var secondMenu = $.trim( $(this).filter("a").text() );
subArray.push(secondMenu);
});
menuArray[firstMenu] = subArray;
});
相关文章:
- 多维关联数组的最后一个索引
- node.js/javascript/couchdb视图到关联数组似乎不起作用
- 具有关联数组数据集的D3.js表
- 后关联数组使用jquery ajax
- 返回一个关联数组,而不是mongoose中的文档数组
- 如何在 Angular JS 中从关联数组创建多个复选框
- 存储在变量中的关联数组中的访问键
- 如何在具有相同 ID 的 Javascript 中按排序函数对关联数组进行排序
- 在主要的JavaScript引擎中,在JavaScript关联数组(动态对象属性)中检索/插入的复杂性是多少
- 关联数组,并使用父数组d作为selection.data()的源数组
- 获取关联数组的标签
- JavaScript:如何在最接近值的关联数组中查找键
- 单击时显示关联数组的元素
- 关联数组 - 使用图像滑块显示键值
- Javascript从关联数组中查找最低数字(气泡排序方法)
- AngularJS过滤器不适用于我的数据:关联数组
- 获取关联数组中当前函数的键
- 如何按一个仍保持字母顺序的特性值(另一个特性值)对关联数组进行排序
- 正在检查JavaScript中是否存在关联数组
- 将数据附加到关联数组或维度数组