您当前的位置:首页 > 互联网教程

getelementsbytagname什么意思

发布时间:2025-05-24 19:08:21    发布人:远客网络

getelementsbytagname什么意思

一、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>希望我对你的问题理解对了,并能对你有帮助。