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属性的返回值是根据一个计算过程获得的,其类型会有变化。计算步骤如下:

  1. 首先获得所有具有特定name属性值的元素,组成元素集合
  2. 检查。如果集合中仅有一个元素,并且该元素是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()方法,除非特殊需要

getElementByName()方法和getter属性,及与getElementById()的区别,布布扣,bubuko.com

时间: 2024-08-08 11:26:14

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

Struts2理解--动态方法和method属性及通配符_默认Action

众所周知,默认条件下,在浏览器输入indexAction!execute.action,便会执行indexAction类里的execute方法,这样虽然方便,但可能带来安全隐患,通过url可以执行Action中的任意方法. 想要禁止调用动态方法,则要在struts.xml中通过constant元素将属性strutsenableDynamicMethodInvocation设置为false,来禁止调用动态方法. <constant name="strutsenableDynamicMetho

java static成员变量方法和非static成员变量方法的区别

这里的普通方法和成员变量是指,非静态方法和非静态成员变量首先static是静态的意思,是修饰符,可以被用来修饰变量或者方法. static成员变量有全局变量的作用       非static成员变量则没有全局变量的作用        局部变量是类的方法里面的变量静态static成员变量是指类的成员变量,他不属于类的对象,只单独属于类,被所有对象共享.当在类中改变他的值时,他在每个对象里面的值都会随之改变. 这也就是说在对象中不能改变他的值,只能在他所在的类中改变,如果他带有final的话(sta

学习ASP .NET MVC5官方教程总结(七)Edit方法和Edit视图详解

学习ASP .NET MVC5官方教程总结(七)Edit方法和Edit视图详解 在本章中,我们研究生成的Edit方法和视图.但在研究之前,我们先将 release date 弄得好看一点.打开Models\Movie.cs 文件.先添加一个引用: <span style="font-size:14px;">using System.ComponentModel.DataAnnotations;</span> 然后在Movie类中添加以下代码: [Display(

详解equals()方法和hashCode()方法

前言 Java的基类Object提供了一些方法,其中equals()方法用于判断两个对象是否相等,hashCode()方法用于计算对象的哈希码.equals()和hashCode()都不是final方法,都可以被重写(overwrite). 本文介绍了2种方法在使用和重写时,一些需要注意的问题. 一.equal()方法 Object类中equals()方法实现如下: public boolean equals(Object obj) { return (this == obj); } 通过该实现

C# 类中隐藏基类方法和Partial

原文:C# 类中隐藏基类方法和Partial 今天对于.NET开发人员来说最开心的事情莫过于微软搞开源了,这觉得是给搞.NET开发的长脸.虽然我是一个初学者,这无疑给我极大的学习动力.Fighting!!! 当一个类从父类继承了一个成员时,也就继承了它的执行代码,如果成员时虚拟的,我们可以用override重写这段执行代码.但无论他是否是虚拟的,都可以通过new 关键字来隐藏它.例如: public class BaseClass { public void DoSomething() { //

jQuery.extend()方法和jQuery.fn.extend()方法

jQuery.extend()方法和jQuery.fn.extend()方法源码分析 这两个方法用的是相同的代码,一个用于给jQuery对象或者普通对象合并属性和方法一个是针对jQuery对象的实例,对于基本用法举几个例子: html代码如下: <!doctype html> <html> <head> <title></title> <script src='jquery-1.7.1.js'></script> <

jquery中attr方法和prop方法的区别

关于checked的属性,最重要的概念就是你要记住,它跟checked的状态值是毫无关系的,设置checked = "checked"或者checked = "true"等属性设置,和它的状态值true/false是无关的.,而这里的属性值,事实上只是和defaultChecked的状态值有关,并且只能用来设置checkbox的初始的值.checked的属性值并不会随着checkbox的的状态变化而变化,可是checkbox的状态值却会.因此,为了能更好的跨浏览器的

据我知道有2个方法来定义标签文本模型领域;传统的方法和“编

背景据我知道有2个方法来定义标签文本模型领域;传统的方法和"编译时显示名称属性"的方法.在传统的方法中,文本被分配作为标签为每个模型字段中的HTML页面.虽然这是使用最简单的方法,它是最难的,当一个单一的模式字段中显示多个页面维护;你应该知道哪些页面领域已经出现进入并改变其标签中所有的人. 在"编译时显示名称属性"的方法,我们分配一个DisplayName特性对我们的模型的每个字段,然后使用Html.LabelFor在我们的HTML页面来显示它.当我们使用代码优先的

java为什么要重写hashCode方法和equals方法?

之前发布过一篇文章说的是关于 equals方法重写 http://www.cnblogs.com/aL0n4k/p/4777333.html 下面就hashCode方法发表一下本人的理解,仅供参考,交流. 在 关于java重写equals方法 已经提及说,比较2个对象的时候,要比较他们各自的属性. 那么重写hashCode方法是因为我们在接触到集合的时候,里面有个Set接口,他只能添加无序以及不重复的对象元素. 那有人会问,既然是这样我们直接用equals判断不就完了么? 实际上对Set集合而言