我有一个无序列表,它将动态生成。我需要将项目存储在数组的列表中。
这是我的清单:
<div id="xaxizd">
<ul id="xaxiz" style="list-style: none;" >
<li></li>
</ul>
</div>
我正在尝试使用此函数检索值。 (下面提到的代码在document.ready函数是自己的)
var lisX = document.getElementById("xaxizd").getElementsByTagName("li");
alert(lisX[0].id);
但它不起作用。有没有其他方法来存储列表项值? 请通过查找错误或建议任何其他方法来帮助。
提前致谢
答案 0 :(得分:1)
没有jQuery:
var arr = document.getElementById("xaxiz").getElementsByTagName("li");
for (i=0;i<arr.length;i++) {
alert(arr[i].id);
}
jQuery的:
$("#xaxiz li").each(function() {
alert(this.id);
});
答案 1 :(得分:0)
你可以更容易地以相反的方式做到这一点。从表示层(列表)构建模型(例如此数组)是从良好的UI设计开始的。如果你从另一个方面开始,你会发现它更容易。例如:
function refreshUL(sources) {
var ul = jQuery('#myUL');
jQuery.each(sources, function(i, source) {
jQuery('<li/>').attr({ key: source.value})
.text(source.text).appendTo(ul);
});
}
但至于您的问题,您的代码将无效,因为这些id
代码中没有<li/>
属性。
答案 2 :(得分:0)
您的li
没有设置ID,因此它返回一个空字符串,将您的HTML更改为:
<div id="xaxizd">
<ul id="xaxiz" style="list-style: none;" >
<li id="test"></li>
</ul>
</div>
再试一次..
答案 3 :(得分:0)
我只是在jQuery文档中查找过它。你可以循环遍历所有li元素:
$( "li" ).each(function( index ) {
console.log( index + ": " + $( this ).attr( "id" );
});
当然你也应该在html代码中添加一个“id”标签; - )