HTMLCollection的长度不起作用

时间:2014-11-14 20:35:07

标签: javascript jquery html css

我试着收集所有的" li"在我的文档中这样做:

var first = document.getElementById("scroll-container").getElementsByTagName("li");

现在我需要知道他们有多少,所以我尝试了这些电话:

console.log(first.length);

console.log(document.getElementById("scroll-container").getElementsByTagName("li").length);

但是他们都没有工作,他们只是在控制台中显示0,当我检查内部"第一"似乎有一个"长度"领域。有人可以帮助我访问吗?

修改

你提出的解决方案不起作用,也许是因为" li"部分不是静态的。在" div"内"滚动容器"我创造了一个" li"对于我读过的.json文件中的每个字段,如下所示:

$.getJSON( "list.json", function(data) {
 $.each(data, function(i, field){
  $.each(field, function(key, value){
    $("#scroll-container").append("<li id='scroll_part1'><p class='row'>"+value.nom+"</p></li>");
  });
 });
});

2 个答案:

答案 0 :(得分:2)

您已使用jQuery标记了此问题,因此这是一个简单的jQuery解决方案:

var first = $('#scroll-container li').first();

或者获取元素中li的数量:

var liCount = $('#scroll-container li').length;

答案 1 :(得分:2)

我怀疑你的标记出错了。鉴于HTML:

<ul id="scroll-container">
  <li></li>
  <li></li>
</ul>

和javascript:

var listItems = document.getElementById("scroll-container").getElementsByTagName("li");

console.log(listItems.length)

它按预期执行并返回2