getelementbyid().未定义的长度

getelementbyid().length undefined?

本文关键字:未定义 getelementbyid      更新时间:2023-09-26

我在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放在一个单独的文件

为什么会这样?

HTML元素没有length属性。如果你想查找元素的长度你需要输入

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

请记住,id对于一个元素来说应该是唯一的。

如果您正在查找"有多少"注释,您需要执行以下操作

document.getElementsByClassName("comment1").length;

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

document.getElementById,顾名思义,获取一个单个元素,而不是多个

HTML中的

id应该是唯一的;应该只有一个带有id的元素。所以getElementById返回的就是那个元素

如果你想标记多个项目,你应该用一个类名来代替。然后可以使用document.getElementsByClassName