在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
答案 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();
修改强>
如果您将$('#msglst').find('div')
替换为$('#msglst div')
答案 3 :(得分:-1)
arr=[];
$("msglst>li>div").each(function(ele){
arr.push(ele.id)
})