首页 > 代码库 > getElementByName()方法和getter属性,及与getElementById()的区别
getElementByName()方法和getter属性,及与getElementById()的区别
可以使用document.getElementByName()方法根据元素的name属性来获得元素。定义name属性的元素包括button、fieldset、input、keygen、output.select、textarea、form、iframe、object、map、meta、param。
getElementByName()获取的是具有相同name属性及值的集合,返回值类型是NodeList。由于ID通常具有唯一性,所以getElementById()通常获得的是对元素对象的引用,而且一般为特定的元素节点。而getter属性的返回值则可以是特定元素或者元素集合。
使用HTMLDocument接口的getter属性也可以达到跟getElementByName()相同的目的,对比如下:
var logoNodeList=document.getElementByName("logo");
var logoNodeList=document["logo"] 和var logoNodeList=document.logo 跟上面的方法具有相同的效果。
getter属性与getElementByName()方法有很多不同之处,getter属性的返回值是根据一个计算过程获得的,其类型会有变化。计算步骤如下:
- 首先获得所有具有特定name属性值的元素,组成元素集合
- 检查。如果集合中仅有一个元素,并且该元素是iframe,那么就返回该元素所表示的WindowProxy对象,后续步骤就不再进行;如果该元素不是iframe,那么就返回该元素,后续步骤就不再进行; 如果检查结果中包含多个元素,那么就返回所有具有特定name属性值的元素集合。
但是getter属性不能获取定义了name属性的input元素。
并不是所有元素都能定义name户型,所有,不推荐使用getter属性与getElementByName()方法,除非特殊需要
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。