getelementbyid()。长度未定义?

时间:2014-06-21 17:30:49

标签: c# javascript

我在C#中有这段代码:

 @foreach (var photo in photos){
            <div class="comment1" id="many">
             @photo.name
            </div>
}
<input type="button" name="button" onclick="count()" />

我想知道有多少“photo.names”,所以我制作了这个javascript

function count(){
var algo = document.getElementById("many");
alert(algo.length);
}

但由于一些奇怪的原因,它给了我“ undefined ”。为什么会这样? 我在单独的文件上有javascript

2 个答案:

答案 0 :(得分:3)

  

为什么会这样?

HTML元素没有length属性。如果您正在寻找元素包含的长度,则需要执行此操作

document.getElementById("many").innerHTML.length;

请注意,ID应该是元素唯一的。

如果您正在寻找“有多少”评论,则需要执行以下操作

document.getElementsByClassName("comment1").length;

类不需要在元素之间是唯一的,并且元素可以有多个类。

答案 1 :(得分:2)

document.getElementById,正如方法名称所示,获取单个元素,而不是多个。

HTML中的ID应该是唯一的;应该只有一个带id的元素。所以getElementById完全返回该元素。

如果要标记多个项目,则应使用类名称。然后,您可以使用document.getElementsByClassName