如何在ul jquery中循环遍历li

时间:2015-06-25 11:50:05

标签: jquery html

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"]

我怎么能这样做?

3 个答案:

答案 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);

演示:

https://jsfiddle.net/ndru/z1Lb6wL6/

答案 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);

FIDDLE DEMO