为什么原生JS可以直接使用ID名称来获取元素
2016-08-08 20:22
603 查看
疑惑,原生JS中可以直接使用ID名称来获取元素,而不用使用getElementById()方法?
(id名称).style.display="inline';
而不是使用:
document.getElementById('id名称').style.display="inline";
就像我在下面使用的一样,js不会报错而且还能准确执行。
其中的multiNavItem是一个div元素id, 上面没有使用clickedItem.addEventListener('click',showSubItem);
原生js直接使用id获取对应元素,这个在所有浏览器中是标准的吗?推荐使用吗?
不建议使用,这个不是标准里面的,将来不一定支持。
而且代码容易写混乱了,
本文作者:Mrcxt
查看更多内容:进入Mrcxt的wordpress博客
问题描述
在js中可以这么使用:(id名称).style.display="inline';
而不是使用:
document.getElementById('id名称').style.display="inline";
就像我在下面使用的一样,js不会报错而且还能准确执行。
<script type="text/javascript"> var clickedItem=document.getElementById('multiNavItem1'); var subItems=document.querySelectorAll('.navItemSecondaryPack'); function showSubItem(){ for (var i=0;i<subItems.length;i++) { subItems[i].style.display='inline'; } } **multiNavItem1**.addEventListener('click',showSubItem); </script>
其中的multiNavItem是一个div元素id, 上面没有使用clickedItem.addEventListener('click',showSubItem);
原生js直接使用id获取对应元素,这个在所有浏览器中是标准的吗?推荐使用吗?
问题解答
这个最初是IE里面的,后来
firefox
chrome好像也支持了。
不建议使用,这个不是标准里面的,将来不一定支持。
而且代码容易写混乱了,
multiNavItem1属于全局作用域,而且你可以给他赋值,赋值之后就是那个新的值,不赋值就是那个元素的值,当有些
id赋了值有些没有,那么有些就是这个
DOM对象,有些不是,特别容易混乱了。
本文作者:Mrcxt
查看更多内容:进入Mrcxt的wordpress博客
相关文章推荐
- 为什么原生JS可以直接使用ID名称来获取元素
- 原生JS可以直接使用ID名称来获取元素
- 在脚本中可以直接使用id名称调用元素
- js中可以直接使用id而不用获取id
- 为什么给html标签定义了id,就可以在js中(浏览器环境)直接通过id引用这个dom元素?
- js获取URL参数的2个方法,可以直接使用
- js之checkbox的代码全选/全不选,使用id获取元素,而不是name
- js获取鼠标点击位置(界面的位置,可以使用top和left直接定位的)
- js中不适用工具可以直接通过ID名称找到唯一的对象
- 原生js直接获取父节点、子节点、兄弟节点的元素节点,不包含空白节点
- 原生JS获取内嵌,外部css样式,使用style只能直接获取内联style的属性值
- js之checkbox的代码全选/全不选,使用id获取元素,而不是name
- 如何通过class和id使用原生js删除元素?
- js方法的命名不能使用表单元素的名称或ID
- 具有绝对定位的标签元素使用原生js获取其left,top的值
- JS原生通过id,class,tagname 来获取元素的方法
- 原生js获取execl里面的值 主要使用ActiveXObject
- WCF X.b 操作引用了已经从 Y.b 操作导出的消息元素 [http://tempuri.org/:b]。可以通过更改方法名称或使用 OperationContractAttribute 的 Name 属性更改其中一个操作的名称...
- 原生js获取iframe中dom元素--父子页面相互获取对方dom元素
- 使用getIdentifier()获取资源Id (根据Id的名字直接定位取到资源)