HTML:
<ul class="a">
<li class="b"><a><span>jjjj</span></a>
<ul class="c">
<li><a>aaaa</a></li>
<li><a>ssss</a></li>
<li><a>dddd</a></li>
</ul>
</li>
<li class="b"><a><span>hhhh</span></a>
<ul class="c">
<li><a>ffff</a></li>
<li><a>gggg</a></li>
</ul>
</li>
</ul>
我想在jquery中创建一个数组。该数组将如下所示:
[["jjjj"]=>["aaaa","ssss","dddd"],["hhhh"]=>["ffff","gggg"]
我怎么能这样做?
答案 0 :(得分:0)
使用此:
var a = [];
$('ul.a>li.b').each(function(i){
var b = $(this).find('span').eq(0).text();
var c = [];
$(this).find('li').each(function(j){
c.push($(this).find('a').text());
});
a[b]=c;
});
console.log(a);
演示:
答案 1 :(得分:0)
如果您总是拥有以下结构,那么您可以轻松地遍历项目并将数据收集到对象中:
var result = {};
$("ul.a > li.b").each(function() {
var LI = $(this);
var spanValue = LI.find("a > span").text();
result[spanValue] = [];
LI.find("ul.c > li > a").each(function() {
result[spanValue].push($(this).text());
});
});
这是工作JS Fiddle Demo。
答案 2 :(得分:0)
var aLis=$(".b");
var array=[];
$.each(aLis,function(i,ele){
array[$(ele).find("span").html()]=[];
var aInnerLis =$(ele).find("li");
$.each(aInnerLis,function(j,innerEle){
array[$(ele).find("span").html()].push($(innerEle).find("a").text());
});
});
console.log(array);