Blog / 阅读

getElementByName()方法和getter属性,及与getElementById()的区别

by admin on 2014-05-15 15:54:39 in ,



可以使用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 也与getElementByName()方法不同,仅定义name属性的元素可以使用getter属性,包括applet、embed、form、iframe、img、object元素,并且applet、object元素的id属性值也可以作为name属性使用,img元素的id属性值也可以作为name属性使用,即使同时定义了name属性
但是getter属性不能获取定义了name属性的input元素。


并不是所有元素都能定义name户型,所有,不推荐使用getter属性与getElementByName()方法,除非特殊需要


写评论

相关文章

上一篇:谷歌浏览器的一个新特点——关于获取iframe的parent对象

下一篇:php中对二维数组某个元素进行排序方法

评论

写评论

* 必填.

分享

栏目

赞助商


热门文章

Tag 云