如何使用javascript通过id获取元素引用的数量

How to get number of element ref by id using javascript?

本文关键字:引用 元素 获取 何使用 javascript 通过 id      更新时间:2023-09-26

如何使用javascript通过id获取元素的数量?

http://jsfiddle.net/3AaAx/51/

通常,加载页面后,它会提醒2(元素ID的长度ele1)。

但为什么要提醒undefined

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input type="text" id="ele1" class="test" value="test"> 
<input type="text" id="ele1" class="test" value="test">    
<script>
$(function() {
//var xxx = document.getElementsByClassName('test');
var xxx = document.getElementById('ele1');    
var xxx;
alert(xxx.length);
});
</script>

getElementById()只返回一个元素。单个元素没有属性length 。(可能有例外,但总的来说...即使存在length属性,它也很可能不会引用返回的元素数量。

您可能引用getElementsBy...()(注意s!)或querySelectorAll()函数,它们返回一个NodeList,它具有length属性。

这是您获得getElementById返回的元素数量的方式:

var xxx = (document.getElementById('ele1') === null) ? 0 : 1;

如果没有元素与id匹配,则返回getElementById null。如果函数不返回 null ,则只有一个元素与条件匹配。在此处查看更多内容。

你评论的那行是对的:

//var xxx = document.getElementsByClassName('test');

getElementsByClassName返回 DOM 元素的集合,该集合具有 length 属性。请注意,在此方法中,元素复数形式length表示集合中的元素数量。

但是你误解了getElementById.此方法将仅返回 DOM 元素(如果没有此类元素,则返回null)。注意在此方法中元素单数形式。DOM 元素通常没有 length 属性。

代码中的另一个问题是,ID 在页面中应该是唯一的。如果有两个或多个元素具有相同的 ID,则属于非法标记。在这种情况下,你会得到意想不到的结果。