如何使用javascript通过id获取元素引用的数量
How to get number of element ref by id using javascript?
如何使用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,则属于非法标记。在这种情况下,你会得到意想不到的结果。
相关文章:
- 在动态创建的元素上获取对特定选择器的引用
- Vanilla JS通过引用移除数组元素
- 获取对使用Tampermonkey使用javascript创建的元素的引用
- 如何正确引用传递到淘汰中的当前元素的属性.JS
- 如何在使用Ractive.extend()时引用DOM元素
- 如何使用角度事件处理程序引用输入元素的值
- 在不引用文档的情况下使用AngularJS获取元素
- 引用Cordova/Onsen中的模板HTML元素
- 如何从函数引用元素(从事件侦听器调用)
- 如何在 if 语句中引用元素
- JQuery:如何动态引用元素
- 稍后在角度中引用元素
- 为什么在使用“insertBefore()”时需要引用元素的父级
- 使用Aurelia's ref属性引用元素的视图模型
- 从另一个HTML文件引用元素id
- 如何在不指定Id's的情况下引用元素
- 只从引用元素的DOM中删除一个元素
- 在不使用jQuery的情况下通过href散列引用元素
- 如何基于按类名循环遍历元素来引用元素'
- 如何使用文档引用元素.当未为元素设置id时,使用getElementById