使用Java Script从HTML中的无序列表生成数组

时间:2014-01-21 08:04:24

标签: javascript

在xml和PHP的帮助下,我在html代码中创建了一个列表

HTML代码就像这样

<ul id="msglst">
    <li> <div id="10"> … </div></li>
    <li><div id="25"> … </div></li>
    <li><div id="116"> … </div> </li>
    <li><div id="255">…</div></li>
    <li> <div id="319"> … </div></li>
    <li><div  id="625">…</div> </li>
</ul>

我想获得一个在ul标签

下存储div标签id的数组

在这张图片中,我描述了所需的数组 访问http://prntscr.com/2l7sez

4 个答案:

答案 0 :(得分:1)

你的意思是:

var ulEle = document.getElementById("msglst"),
    liEle = ulEle.getElementsByTagName("li"),
    arr = [];
for(var li = 0, len = liEle.length; li < len; li++) {
    var divEle = liEle[li].getElementsByTagName("div");
    for(var d = 0, dlen = divEle.length; d < dlen; d++) {
        arr.push(divEle[d].getAttribute("id"));
    }
}
console.log(arr);

演示:: jsFiddle

答案 1 :(得分:1)

这应该可行,IE8及以上。 jsFiddle

var elements = document.querySelectorAll('#msglst > li > div'),
    idList = [];
for(var i=0;i<elements.length;i++) {
    idList.push(+elements[i].getAttribute('id'));
}

alert(JSON.stringify(idList));

答案 2 :(得分:0)

如果您使用的是jQuery,可以这样做:

var array = $('#msglst').find('div').map(function() {
  return $(this).attr('id');
}).toArray();

Demo

修改

如果您将$('#msglst').find('div')替换为$('#msglst div')

,它也会有效

答案 3 :(得分:-1)

arr=[];
$("msglst>li>div").each(function(ele){ 
   arr.push(ele.id)
})