JavaScript查找DOM元素的方法总结

2014-08-16 09:06:00|?次阅读|上传:huigezrx【已有?条评论】发表评论

关键词:JavaScript, Web|来源:唯设编程网

JavaScript编程的时候我们经常需要查找HTML中的DOM元素,HTML DOM 定义了多种查找元素的方法,除了 getElementById() 之外,还有 getElementsByName()和 getElementsByTagName(),本文通过实例分析这三种查找DOM元素方法的异同和注意事项。

getElementById:
语法: document.getElementById(id)
参数:id :必选项为字符串(String)
返回值:对象; 返回相同id对象中的第一个,如果无符合条件的对象,则返回 null
example:

document.getElementById("id1").value;

getElementsByName:
语法: document.getElementsByName(name)
参数:name :必选项为字符串(String)
返回值:数组对象; 如果无符合条件的对象,则返回空数组
example:

document.getElementsByName("name1")[0].value;
document.getElementsByName("name1")[1].value;

getElementsByTagName:
语法: object.getElementsByTagName(tagname) object可以是document或event.srcElement.parentElement等
参数:tagname:必选项为字符串(String)
返回值:数组对象; 如果无符合条件的对象,则返回空数组
example:

document.getElementsByTagName("p")[0].childNodes[0].nodeValue;
document.getElementsByTagName("p")[1].childNodes[0].nodeValue;

注意:

1. getElementsByNamegetElementsByTagName在Element后面都有s,即返回元素是一个数组;

2. getElementsByName通过元素的名称获得对应的DOM元素数组;

3. getElementsByTagname通过元素的标签(如p,div等)获得对应的DOM元素数组;

4. document.getElementById()可以通过元素的ID获取对应的DOM元素;

使用getElementsByNamegetElementsByTagName获取DOM元素返回的是一个集合,引用特定DOM元素的时候要指名对应的序号(index):

var test = document.getElementsByName('testButton')[0];

例1:

<html>
<head>
<title>fish</title>
< language="java">
get(){
var xx=getElementById("bbs")
alert("标记名称:"+xx.tagName);
}
getElementName(){
var ele = getElementsByName("happy");
alert("无素为happy的个数:" + ele.length);
}
</></head>
<body>
<h2 id="bbs">获取文件指定的元素</h2>
<hr>
<form>
<input type="button" ="get()" ="获取标题标记">
<input type="button" name="happy" ="getElementName()" ="click ">
<input type="button" name="happy" ="getElementName()" ="click ">
<input type="button" name="happy" ="getElementName()" ="click ">
<input type="button" name="happy" ="getElementName()" ="click ">
<input type="button" name="happy" ="getElementName()" ="click ">
</form>
</body>
</html>

getElementsByName()这个方法.它对一个和多个的处理是一样的,我们可以用:

Temp = getElementsByName('happy')

来引用,当Temp只有1个的时候,那么就是Temp[0],有多个的时候,用下标法Temp[i]循环获取

也有例外:

在ie 中getElementsByName(“test“)的时候返回的是id=test的object数组,而firefox则返回的是name= test的object的数组。

按照w3c的规范应该是返回的是name= test的object的数组。

firefox和ie中的getElementByID相同:获取对 ID 标签属性为指定值的第一个对象的引用。

document.getElementsByName:方法可返回带有指定名称的对象的集合。

该方法与 getElementById() 方法相似,但是它查询元素的 name 属性,而不是 id 属性。

另外,因为一个文档中的 name 属性可能不唯一(如 HTML 表单中的单选按钮通常具有相同的name 属性),所有 getElementsByName() 方法返回的是元素的数组,而不是一个元素。

<html>
<head>
<script type="text/javascript">
function getElements()
  {
  var x=document.getElementsByName("myInput");
  alert(x.length);
  }
</script>
</head>
<body>
<input name="myInput" type="text" size="20" /><br />
<input name="myInput" type="text" size="20" /><br />
<input name="myInput" type="text" size="20" /><br />
<br />
<input type="button" onclick="getElements()"
value="How many elements named 'myInput'?" />

</body>
</html>

getElementsByTagName() 方法可返回带有指定标签名的对象的集合。

document.getElementsByTagName(tagname)

getElementsByTagName() 方法返回元素的顺序是它们在文档中的顺序。

如果把特殊字符串 "*" 传递给 getElementsByTagName() 方法,

<12>
发表评论0条 】
网友评论(共?条评论)..
JavaScript查找DOM元素的方法总结