一篇文章带你了解JavaScript htmldom 元素

这篇文章将教会大家如何查找和访问网页中的HTML元素。

一、找到HTML元素

通常,使用JavaScript,想操作HTML元素。要做到这一点,必须先找到元素。有几种方法可以做到这一点。

找到DOM中的HTML元素的最简单的方法,是利用元素的id。

使用id="intro"找到元素 :

var myElement = document.getElementById("intro");

如果找到元素,则该方法将返回元素作为对象 (赋值给myElement)。

元素没有被发现,myElement将是空的。

二、通过标签名称找到HTML元素

找到所有<p>元素:

var x = document.getElementsByTagName("p");

这个例子使用id="main"找到元素 , 并且在"main"里面找到所有的 <p> 元素:

1var x = document.getElementById("main"); 2var y = x.getElementsByTagName("p");

三、通过类名称找到HTML元素

如果想找到同一类名称的所有HTML元素,使用getElementsByClassName()。

例:

返回所有class="intro"的元素列表.

var x = document.getElementsByClassName("intro");

在Internet Explorer 8和早期版本中,按类名查找元素不起作用。

四、通过CSS选择器找到HTML元素

如果想找到所有的HTML元素,匹配指定的CSS选择器 (id, 类名, 类型, 属性, 属性值, 等等), 使用querySelectorAll() 方法。

此示例返回所有class="intro"的<p>元素列表。

var x = document.querySelectorAll("p.intro");

querySelectorAll() 方法在Internet Explorer 8和早期版本中不起作用。

五、通过HTML对象集合找到HTML元素

此示例查找id="frm1"的表单元素,在表单集合里,并显示所有的颜色值。

1 2var x = document.forms["frm1"]; 3var text = ""; 4var i; 5for (i = 0; i < x.length; i++) { 6 text += x.elements[i].value + "<br>"; 7} 8document.getElementById("demo").innerHTML = text;

下面的HTML对象(或对象的集合)也可访问:

1. document.anchors

1<!DOCTYPE html> 2<html lang="en"> 3<head> 4<meta charset="UTF-8"> 5<title>项目</title> 6</head> 7<body style="background-color: aqua;"> 8 9<a name="html">HTML Tutorial</a><br> 10<a name="css">CSS Tutorial</a><br> 11<a name="xml">XML Tutorial</a><br> 12 13<p id="demo"></p> 14 15<script> 16document.getElementById("demo").innerHTML = 17"Number of anchors are: " + document.anchors.length; 18</script> 19 20</body> 21</html> 22

2. document.body

1 2<script> 3 alert(document.body.innerHTML); 4</script>

3. document.embeds

1 2<script> 3 document.getElementById("demo").innerHTML = 4 "Number of embeds: " + document.embeds.length; 5</script>

4. document.head

1 2<script> 3 document.getElementById("demo").innerHTML = document.head; 4</script>

5. document.images

1 2<!DOCTYPE html> 3<html lang="en"> 4<head> 5 <meta charset="UTF-8"> 6 <title>项目</title> 7</head> 8<body> 9 10 <img src="pic_htmltree.gif"> 11 <img src="pic_navigate.gif"> 12 13 <p id="demo"></p> 14 15 <script> 16 document.getElementById("demo").innerHTML = 17 "Number of images: " + document.images.length; 18</script> 19 20</body> 21</html>

6. document.title

1 2<!DOCTYPE html> 3<html lang="en"> 4 <head> 5 <meta charset="UTF-8"> 6 <title>项目</title> 7 </head> 8 <body style="background-color: aqua;"> 9 10 <p id="demo"></p> 11 12 <script> 13 document.getElementById("demo").innerHTML = "The title of this document is: " + document.title; 14</script> 15 16 </body> 17</html> 18

HTML DOM允许JavaScript获取和更改HTML元素的属性。

六、扩展

获取元素的属性值

**getAttribute()**方法用于获取元素上指定属性的当前值。

以下示例获取锚元素的hreftitle属性的值。

1 2var link = document.getElementById("demo"); 3var href = link.getAttribute("href"); 4var title = link.getAttribute("title");

1. 在元素上设置属性

**setAttribute()**方法用于设置指定元素上的属性的值。

如果属性已经存在,则更新值;否则,将添加具有指定名称和值的新属性,将href属性的值设置为锚元素:

1 2var x = document.getElementsByTagName("a")[0]; 3x.setAttribute("href", "https://www.baidu.com/css3/");

同样,可以使用**setAttribute( )**方法来更新或更改HTML元素上现有属性的值。

document.getElementsByTagName("input")[0].setAttribute("type", "text");
1**完整代码:** 2
1 2<!DOCTYPE html> 3<html> 4 <title>项目</title> 5 6 <body style="background-color: aqua;"> 7 8 <p>单击按钮可将输入按钮更改为输入字段:</p> 9 10 <input type="button" onclick="myFunc(this)" value="Click me"> 11 12 <script> 13 function myFunc(x) { 14 x.setAttribute("type", "text"); 15 } 16</script> 17 18 </body> 19</html>

2. 从元素中删除属性

removeAttribute()方法用于从指定元素中删除属性。

本示例从锚元素中移除href属性:

document.getElementsByTagName("a")[0].removeAttribute("href");

七、总结

本文基于JavaScript基础,介绍了Html元素,从最基本的通过标签名找Html元素,通过类名找Html元素。通过CSS选择器找Html元。最后扩展如何设置元素属性,如何去删除元素属性。通过丰富的效果图展示,能够帮助读者更好的了解Html元素。

代码很简单了,希望能够帮助你。

-------------------********************************** End **********-------------**-----********-**********************************

往期精彩文章推荐:

欢迎各位大佬点击链接加入群聊【helloworld开发者社区】:https://jq.qq.com/?_wv=1027&k=mBlk6nzX进群交流IT技术热点。

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )

03. react 初次见面

    与浏览器的DOM元素不同,React当中的元素事实上是普通的对象,ReactDOM可以确保浏览器DOM的数据内容与React元素保持一致。1、将元素渲染到DOM中    首先我们在一个HTML页面中添加一个id"root" 的<div:<divid"root"