访问表单的方式:document.forms[n]
document.表单名字
查找元素节点:
getElementById()
寻找一个有着给定 id 属性值的元素,返回值是一个有着给定 id 属性值的元素节点。如果不存在这样的元素,它返回 null。该方法只能用于document对象。
getElementsByName()
寻找有着给定name属性的所有元素,这个方法将返回一个节点集合,这个集合可以当作一个数组来处理。这个集合的 length 属性等于当前文档里有着给定name属性的所有元素的总个数。
getElementsByTagName()
寻找有着给定标签名的所有元素,这个方法将返回一个节点集合,这个集合可以当作一个数组来处理。这个集合的 length 属性等于当前文档里有着给定标签名的所有元素的总个数。该方法也可以用来在某个特定元素的子节点当中寻找有着给定标签名的元素。
查看是否存在子节点
hasChildNodes()
该方法用来检查一个元素是否有子节点,返回值是 true 或 false。文本节点和属性节点不可能再包含任何子节点,所以对这两类节点使用 hasChildNodes 方法的返回值永远是 false。如果 hasChildNodes 方法的返回值是 false,则 childNodes,firstChild,lastChild 将是空数组和空字符串。
DOM属性
文档里的每个节点都有以下属性:
nodeName:一个字符串,其内容是给定节点的名字。
var name = node.nodeName;
* 如果节点是元素节点,nodeName返回这个元素的名称
* 如果是属性节点,nodeName返回这个属性的名称
* 如果是文本节点,nodeName返回一个内容为#text 的字符串
注:nodeName 是一个只读属性。
nodeType:返回一个整数,这个数值代表着给定节点的类型。
nodeType属性返回的整数值对应着12种节点类型,常用的有三种:
Node.ELEMENT_NODE ---- 1 元素节点
Node.ATTRIBUTE_NODE ---- 2 属性节点
Node.TEXT_NODE ---- 3 文本节点
nodeType是个只读属性
nodeValue:返回给定节点的当前值(字符串)
如果给定节点是一个属性节点,返回值是这个属性的值。
如果给定节点是一个文本节点,返回值是这个文本节点的内容。
如果给定节点是一个元素节点,返回值是 null
nodeValue 是一个读/写属性,不能对元素节点的nodeValue 属性设置值,但可以为文本节点的nodeValue 属性设置一个值。
替换节点:
replaceChild()
把一个给定父元素里的一个子节点替换为另外一个子节点
var reference = element.replaceChild(newChild,oldChild);
返回值是一个指向已被替换的那个子节点的引用指针。如果被插入的子节点还有子节点,则那些子节点也被插入到目标节点中。
查找属性节点
getAttribute()
返回一个给定元素的一个给定属性节点的值
var attributeValue = element.getAttribute(attributeName);
给定属性的名字必须以字符串的形式传递给该方法。给定属性的值将以字符串的形式返回,如果给定属性不存在,getAttribute() 将返回一个空字符串。通过属性获取属性节点: getAttributeNode(属性的名称)--Node
设置属性节点
setAttribute()
将给定元素节点添加一个新的属性值或改变它的现有属性的值。
element.setAttribute(attributeName,attributeValue);
属性的名字和值必须以字符串的形式传递给此方法。如果这个属性已经存在,它的值将被刷新;
如果不存在,setAttribute()方法将先创建它再为其赋值。
创建新元素节点
createElement()
按照给定的标签名创建一个新的元素节点。方法只有一个参数:将被创建的元素的名字,是一个字符串.
var reference = document.createElement(element);
方法的返回值:是一个指向新建节点的引用指针。返回值是一个元素节点,所以它的 nodeType 属性值等于 1。
新元素节点不会自动添加到文档里,新节点没有 nodeParent 属性,它只是一个存在于 JavaScript 上下文的对象。
创建新文本节点
createTextNode()
创建一个包含着给定文本的新文本节点。这个方法的返回值是一个指向新建文本节点引用指针。
var textNode = document.createTextNode(text);
方法只有一个参数:新建文本节点所包含的文本字符串。
方法的返回值:是一个指向新建节点的引用指针。它是一个文本节点,所以它的 nodeType 属性等于 3.
新元素节点不会自动添加到文档里,新节点没有 nodeParent 属性。
插入节点
appendChild()
为给定元素增加一个子节点:
var newreference = element.appendChild(newChild).
给定子节点 newChild 将成为给定元素节点 element 的最后一个子节点。该方法的返回值是一个指向新增子节点的引用指针。该方法通常与 createElement() 、createTextNode() 配合使用。新节点可以被追加给文档中的任何一个元素。
insertBefore()
把一个给定节点插入到一个给定元素节点的给定子节点的前面。
var reference = element.insertBefore(newNode,targetNode);
节点 newNode 将被插入到元素节点 element 中并出现在节点 targetNode 的前面。节点 targetNode 必须是 element 元素的一个子节点。该方法通常与 createElement() 和 createTextNode() 配合使用。
删除节点
removeChild()
从一个给定元素里删除一个子节点
var reference = element.removeChild(node);
返回值是一个指向已被删除的子节点的引用指针。某个节点被removeChild()方法删除时,这个节点所包含的所有子节点将同时被删除。如果想删除某个节点,但不知道它的父节点是哪一个,parentNode 属性可以帮忙。
遍历节点树
ChildNodes:返回一个数组,这个数组由给定元素节点的子节点构成:
var nodeList = node.childNodes;
文本节点和属性节点都不可能再包含任何子节点,所以它们的 ChildNodes 属性永远会返回一个空数组。
如果想知道某个元素有没有子节点,可以用 hasChildNodes 方法。如果想知道某个元素有多少个子节点,可以用 childNodes 数组的 length 属性。childNodes 属性是一个只读属性。
获取第一个子节点
firstChild:该属性返回一个给定元素节点的第一个子节点,返回这个节点对象的指针。
var reference = node.firstChild;
文本节点和属性节点都不可能包含任何子节点,所以它们的 firstChild 属性永远会返回 null。
某个元素的 firstChild 属性等价于这个元素的 childNodes 节点集合中的第一个节点,即:
var reference = node.ChildNodes[0];
firstChild 属性是一个只读属性。