【发布时间】:2012-10-20 20:21:25
【问题描述】:
我正在尝试从多个 div 的无序列表中获取多个属性,如下所示:
<div class="graph" style="display:none;">
<ul g-max='10'>
<li g-color='green' g-val='4'></li>
<li g-color='blue' g-val='3.6'></li>
<li g-color='red' g-val='8'></li>
</ul>
</div>
<div class="graph" style="display:none;">
<ul g-max='14'>
<li g-color='green' g-val='2'></li>
<li g-color='blue' g-val='9'></li>
<li g-color='red' g-val='3.98'></li>
</ul>
</div>
我正在尝试使用 jQuery 来执行此操作,并且正在使用以下内容:
var graph_array = [];
$('.graph').each(function(divind)
{
$('ul').each(function(ulind)
{
$('li').each(function(liind)
{
graph_array[divind][ulind][liind]['g-val'] = $(this).attr('g-val');
graph_array[divind][ulind][liind]['g-color'] = $(this).attr('g-color');
});
});
});
alert(graph_array);
但是,即使我四处移动并尝试不同的技术,例如 .map() 或 .toArray(),也没有任何效果。有任何想法吗?提前致谢!
编辑:我想要一个看起来像这样的结果:
[{
{
{g-color:green, g-val:4},{g-color:blue, g-val:3.6},{g-color:red, g-val:8}
},
{
{g-color:green, g-val:2},{g-color:blue, g-val:9},{g-color:red, g-val:3.98}
}
}]
【问题讨论】:
-
你能显示你想要结束的数组/对象吗?
-
我不太确定你希望最后得到什么,但我会这样说:当你说
$('li').each时,它会遍历页面上的每个li--不仅仅是父循环引用的ul中的那些。也许您想要$(li, ulind).each之类的东西,它将选择器限制在给定的上下文中。 (当然,您需要在每个级别都这样做。) -
如果您添加所需的输出会有所帮助..
-
哇,不合法!
[ {green:4, blue:3.6, red:8}, {green:2, blue:9, red:3.98} ];或类似的呢?这是合法的 js,包含所有可用的数据。 -
酷!无论如何,您至少在下面得到了一个好的答案。
标签: jquery multidimensional-array html-lists