这篇文章将教会大家如何查找和访问网页中的HTML元素。
一、找到HTML元素
通常,使用JavaScript,想操作HTML元素。要做到这一点,必须先找到元素。有几种方法可以做到这一点。
找到DOM中的HTML元素的最简单的方法,是利用元素的id。
使用id=”intro”找到元素 :
- varmyElement=documen\ ! o ! B J At.getElementById("intro");
如果找到元素s B L T,则该方法将返回元素作为对象 (赋值给myElement)。
元素没有被发现,myElement将是空的。
二、通过标签名称找到HTML元素
找到所有<p>元素:
- varx=d- a _ 1 G L Wocument.getElementsBi I HyTagName("p");
这个例子使用id=”m@ e fain”找到元素 , 并C Z x F – 7且在”ma2 E ein”r _ (里面找到所有的 <p> 元素:
- varx=docu% 2 { B k 2 6 % 4ment.getElementById("main");
- vary=x.getElementsByTagName("p");
三、通过类名称找到HTML元素
如果想找到同一类名称的所有HTML元素,使用ge9 R J * i ^ ntElementsByClassName()。
例:
返回所H g \ y L有class=”intro”的元素列表.
- varh n 5x=documenB f C U Y % W * *t.getElemr B N - 3 u XentsByClassName("intj . dro");
在Internet Explorer 8和早期版本中,按类名v C %查找元素不起作用。
四、通过CSS选择器找到HTML元素
如果想找到8 # p D a所有的HTML元素,匹配指定的CSS选择器 (id, 类名, 类型, 属性, 属性值, 等等), 使用querySelectorAll() 方法。
此示例返回所有class=”intro”的
元素列表。
- varx=document.querySelectorA9 # h ; t 6 u ell("p.intro");
quer$ I 6 WySelectorAll() 方法在Internetd 7 p ? – Q * m y Explorer 8和早期版本中不起作@ O n用。
五、通过HTML对象集合找到HTML元素
此示例查找id=”frJ ~ Nm1″的表单元素,在表单集合里,并显示所有的颜色值。
- v\ M ! l ! I - @ 3arx=document.forms["frm1"];
- vartext="";
- vari;
- for(i=0;i<x.length;i++){
- tex; m u f \ b Yt+=x.elements[i].value+"<br>R F A;";
- }
- document.getElementById("demo").innerHTML=text;
下面的HTML对象(或对象的集合)也可访问:
1. document.a\ ~ j nnchors
- <} M N Z;!DOCTYPEhtml>
- <htmllang="en"&gs V w | N V \t;
- <head>
- <metacharset="UTF-8">
- <title>项目&6 h ! A 1 H . 1 5lt;/title] 1 h . & |>a o : , O;
- </head>
- <bodyst9 G )yle="background-color:aqua;">
- <aname="html">HTMLTutorial</a><br>
- <aname="css">CSSTutorial<L N b 7 + H \ P n/a><br>
- <aname="xml">XMLTutorial</a>&0 l Q 0 } X 4 h Glt;br>
- <pid="demo"></p>
- &! ^ e ^ llt;script>
- document.getElementById("demo").innerHTML=
- "Numberofanchorsare:"+document.anchors.length;
- </script>
- </body>
- &7 O o j C [ q u wlt;/html>
2. document.body
- <script>
- aler\ o z ct(document.body.innerHTML);
- </script>
3. document.embeds
- &lq Q 6 2 Ut;script>
- document. $ s I O o F.getElemenl u e / ~tById("demo").innerHTML=
- "Numberofembeds:"+document.embeds.length;
- </script>
4. document.head
- <script>
- do` i } |cument.getElew z N T [mentById("demo").innerHTML=document.head;
- </script>
5. document.images
- <!DOCTYPEhtml>
- <htmllang="en">$ 4 \ # X _
- <head; % & B&g# y # + @ * ~ zt;
- <] J | $ G | i &;metacharset="UTF-8">
- <title>项目</title>
- </heaz 0 S Jd>
- <body>
- <imgsrc% - i H c="pic_htmltree.gif">
- <imgsrc="r , : } g y ?pic_navigate.gif">
- <pid="demo"></p>
- <script>s ! [ r F w r
- document.getElementById("dem1 ) X ,o").innerHTML=
- "Numberofimages| # 6 : W $ 6 , j:"+document.i] o ! Q Pmages.length;
- </script>
- </B , s 0 ? m | l #bodj % Q h l I p \y>
- </html>
6. document.title
- <!DOCTYPEhtml/ B D>
- <htm\ A lllang="en">
- <head>
- <metacharset="UTF-8">
- <title>项目</title>
- </head>
- &l` d 9 it;bodystyle="background-color:aqua;">
- <pid="demo"></p>
- <script>
- document.getElementB_ N + X K L v ^ !yId("demo").innerHTML="Tht 2 ! V C Z k Eetitleofthisdocumentis:"+document.tS } k 3 1 /itle;
- &y d vlt;/script>
- &l[ u n 1 K pt;/body>
- </html>
HTML DOM允许JavaScriJ 5 & e F T Vpt获取和更改HTML元素的属性。
六、扩展
获取元素的属性值
getAtt? # o nribute()方法用于获取元素上指定属性的当前值。
以下示例获取锚元素的href和title属性的值。
- varlink=document.getElementById("demo");
- varhref; 0 #=link.getAttriX r ` B h % e \ ~bute("href");
- vartitle=link.getAttribute("title");
1. 在元素上设置属性
setAttribute()方法用于设置指定元素上的属性的值。
如果属性已经存在,则更新值;否则,将添加具有指定名称和值的新属性,将href属性的值设置为锚元素:
例
- varx=document.getElementsByTagName("a")[0];
- x.setAttribute("href","httW c jps://wwe 0 * { nw.baidu.com/css3/");
同样,可以使d u 1用setAttribute( )方法0 Z / u = T来更新或更改HTML& \ ? r J P (元素上现有属性的值。
例
- document.getElementsBy0 D & z )TagName("input")[0].setAttributQ ) s fe("type"~ } W = o i u G,"text");
完整代码:
- <!DOCTYPEhtml>
- <htt Q ) M _ W W 9 Oml>
- <titw 1 [ 7 w Ule>| P 2 R h项目<[ p r ( ^ ) n/title>
- <bodystyle="background-color:aqua;"&g? X v L /t;
- <p>单击按钮可将输y p , w | g n入按钮更改为输入字段:</p>
- <inputtype="butto# j b ? 8n"onclick="myFunc(this)"value="Clickme">
- <script>
- functionmyFunc(x){
- x.setAttribute("type","text");
- }
- </script>
- </body>
- </hb X w xtml>
2. 从元素中删除属性
remoP ` o % W @ + =veAttribute()方法用于从指定元素中删除属性。
本示例从锚元素中移除href属性:
- docz 9 A T H K ^ 4 -ument.gy ; # e oetW E [ : h \ElementsByTaZ t /gName("a")[0].removeA $ q K ZAttribute(B l ; @ E ,"href");
七、总结
本文: n C | B !基于JavaScript基础,介U L 3 _ Q ~ B {绍了Html元素,从最基本的通过标签名找Html元素,通过类名找Html元素。通过CSS选择器找Html元。最后扩展如何设置元素属性,如何去删除元素属性。通过丰富的效果图展示,能够帮助读者更好的了解Html元素。
代码很简单了,希望能够帮助你。