如何在数组中动态生成ul中存储li值?

时间:2013-11-19 13:20:11

标签: javascript jquery html

我有一个无序列表,它将动态生成。我需要将项目存储在数组的列表中。

这是我的清单:

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

但它不起作用。有没有其他方法来存储列表项值?  请通过查找错误或建议任何其他方法来帮助。

提前致谢

4 个答案:

答案 0 :(得分:1)

Fiddle

没有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”标签; - )