getelementsbytagname什么意思
发布时间:2025-05-24 19:08:21 发布人:远客网络
一、getelementsbytagname什么意思
WEB标准下可以通过getElementById(), getElementsByName(), and getElementsByTagName()访问DOCUMENT中的任一个标签:
getElementById()可以访问DOCUMENT中的某一特定元素,顾名思义,就是通过ID来取得元素,所以只能访问设置了ID的元素。
<div id="docid"></div>
那么就可以用getElementById("docid")来获得这个元素。
<!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN"
"">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>ById</title>
<body><div id="docid" name="docname" onClick="bgcolor()"></div>
<script language="JavaScript" type="text/JavaScript">
document.getElementById("docid").style.backgroundColor="#000"
这个是通过NAME来获得元素,但不知大家注意没有,这个是GETELEMENTS,复数ELEMENTS代表获得的不是一个元素,为什么呢?
因为DOCUMENT中每一个元素的ID是唯一的,但NAME却可以重复。打个比喻就像人的身份证号是唯一的(理论上,虽然现实中有重复),但名字
重复的却很多。如果一个文档中有两个以上的标签NAME相同,那么getElementsByName()就可以取得这些元素组成一个数组。
<div name="docname" id="docid1"></div>
<div name="docname" id="docid2"></div>
那么可以用getElementsByName("docname")获得这两个DIV,用getElementsByName("docname")[0]访问第一个DIV,用getElementsByName
这个呢就是通过TAGNAME(标签名称)来获得元素,一个DOCUMENT中当然会有相同的标签,所以这个方法也是取得一个数组。
下面这个例子有两个DIV,可以用getElementsByTagName("div")来访问它们,用getElementsByTagName("div")[0]访问第一个DIV,用
getElementsByTagName("div")[1]访问第二个DIV。
<!DOCTYPE html PUBLIC"-//W3C//DTD XHTML 1.0 Transitional//EN""">
<html xmlns="">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>Byname,tag</title>
<div name="docname" id="docid1" onClick="bgcolor()"></div>
<div name="docname" id="docid2" onClick="bgcolor()"></div>
<script language="JavaScript" type="text/JavaScript">
var docnObj=document.getElementsByTagName("div");
docnObj[0].style.backgroundColor="black";
docnObj[1].style.backgroundColor="black";
总结一下标准DOM,访问某一特定元素尽量用标准的getElementById(),访问标签用标准的getElementByTagName(),但IE不支持
getElementsByName(),所以就要避免使用getElementsByName(),但getElementsByName()和不符合标准的document.all[]也不是全无是处,它们有自己的方便之处,用不用那就看网站的用户使用什么浏览器,由你自己决定了。
二、通过判断Class的值用getElementByClassName隐藏Div元素..
1、js是不能根据类名直接获取页面元素的,但是有其他折中的方式,个人给你的参考程序如下:
2、输出列表外层添加div包,用于定位,减少程序检索范围:
3、<divid="k1">//外层div包,用于js定位
4、<divclass="kkk">test1</div>
5、<divclass="kkk">test2</div>
6、<divclass="kkk">test3</div>
7、<divclass="kkk">test4</div>
8、varlist=document.getElementById("k1");//获取检索范围
9、varstr=list.getElementsByTagName("div");//获取检索内容块
10、for(vari=0;i<str.length;i++)//遍历内容块
11、if(str[i].className=="kkk")//判断类名是否为kkk
12、 if(str[i].innerHTML=="test1")//判断内容是否为指定
13、 str[i].style.display="none";//满足条件内容隐藏显示
三、怎么用js获取表单里input标签下的name参数的值并修改
我想楼主的意思是这样的吧,并不是要取'kk'的input中的value值。而是‘kk’本身这个name名称吧。<br><br>根据你的问题补充:<br><input name="kk"></input><br><script language="javascript"><br><br>//这里用getElementsByTagName把所有的input对象取出来,这是你这个问题的关键性的地方,用ByTagName而不是ByName。<br>var inputList= document.getElementsByTagName("input");<br>//循坏这个集合,包括了所有的input。<br>for(i=0;i<list.length;i++){<br>//这里弹出的就是'kk',当然也可以根据需要输出别的。比如:list[i].id; list[i].value等等。<br>alert(list[i].name);<br><br>//这是修改这个值<br>list[i].name='mm';<br><br>//这时弹出的就是'mm'了<br>alert(list[i].name);<br>}<br></script><br><br>希望我对你的问题理解对了,并能对你有帮助。