[英]How to store li values in dynamically generated ul , in an array?
我有一个无序列表,它将动态生成。 我需要将项目存储在数组的列表中。
这是我的清单:
<div id="xaxizd">
<ul id="xaxiz" style="list-style: none;" >
<li></li>
</ul>
</div>
我正在尝试使用此函数检索值。 (下面提到的代码在document.ready函数是self中)
var lisX = document.getElementById("xaxizd").getElementsByTagName("li");
alert(lisX[0].id);
但这是行不通的。 还有其他方法可以存储列表项的值吗? 请通过发现错误或建议其他方法来帮助您。
提前致谢
没有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);
});
相反,您这样做会更容易。 从表示层(列表)构建模型(例如此数组)是从良好的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);
});
}
但是对于您眼前的问题,由于这些<li/>
标记中没有id
属性,因此代码无法正常工作。
您的li
没有设置ID,因此返回的是空字符串,请将HTML更改为:
<div id="xaxizd">
<ul id="xaxiz" style="list-style: none;" >
<li id="test"></li>
</ul>
</div>
然后再试一次..
我只是在jQuery文档中进行了查找。 您可以遍历所有li元素:
$( "li" ).each(function( index ) {
console.log( index + ": " + $( this ).attr( "id" );
});
当然,您还应该在html代码中添加“ id”标签;-)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.