一、关于DOM

   DOM全称为document object model(文本对象模型), 当网页被加载时,浏览器会创建页面的文档对象模型,即dom元素。

   document对象指的是所有的html对象,通过可编程的对象模型,JavaScript 获得了足够的能力来创建动态的 HTML。  

  • JavaScript 能够改变页面中的所有 HTML 元素
  • JavaScript 能够改变页面中的所有 HTML 属性
  • JavaScript 能够改变页面中的所有 CSS 样式
  • JavaScript 能够对页面中的所有事件做出反应

二、DOM获取元素

在获取元素的时候需要注意获取的元素是否初始化

1.getElementsByClassName 通过类名称获取

   获取出来的对象是集合类型,也可以说是数组类型 ,class可以绑定多个元素,由于获取到的是集合类型,就有相关属性,例如 length 代表长度。

eg:

<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<button class=btn>按钮</button>
<script>
    var btn=document.getElementsByClassName("btn");//获取网页中的按钮并进行初始化
    console.log(btn)
</script>
</body>
</html>

运行结果:

java script简介 java script document_初始化

通过控制台输出的结果可以看到获取到的是数组。

2.getElementById 通过id获取

  获取到的是唯一元素

eg:

<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<button id="btn">按钮</button>
<script>
    var btn=document.getElementById("btn");//获取网页中的按钮并进行初始化
    console.log(btn)
</script>
</body>
</html>

运行结果:

java script简介 java script document_java script简介_02

通过控制台输出的结果可以看到获取到的是单个元素。

3.getElementsByName 通过元素的name名称获取

 eg:

<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<button name="btn">按钮1</button>
<button name="btn">按钮2</button>
<button name="btn">按钮3</button>
<script>
    var btn=document.getElementsByName("btn");//获取网页中的按钮并进行初始化
    console.log(btn)
</script>
</body>
</html>

运行结果:

java script简介 java script document_html_03

通过输出结果我们可以看到,网页中所有name名称相同的元素均会被获取,得到的是数组类型。

4.getElementsByTagName 通过元素的标签名称获取

eg:

<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<button name="btn">按钮</button>
<span>abc</span>
<script>
    var aa=document.getElementsByTagName("span");
    console.log(aa);
</script>
</body>
</html>

运行结果:

java script简介 java script document_html_04

通过输出结果可以看到,getElementsByTagName是通过元素标签名称获取元素的,获取到的是数组类型。

三、DOM获取到元素之后操作元素

1.JavaScript 能够创建动态的 HTML 内容

在JavaScript 中,document.write() 可用于直接向 HTML 输出流写内容。

eg:

<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<script>
   document.write(Date());//Data()指当前时间
</script>
</body>
</html>

运行结果:

java script简介 java script document_初始化_05

可以看到HTML body元素中没有写内容,输出内容是由document.write()直接向HTML输出流写入内容。

2.JavaScript 能够修改 HTML 内容

最简单的方法时使用 innerHTML 属性。

注意:如果需要使用innerHTML 属性,在获取元素不能使用getElementsByClassName。

eg:

<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<span id="tex">HELLO WORLD</span>
<script>
    document.getElementById("tex").innerHTML="HOW ARE YOU";
</script>
</body>
</html>

运行结果:

java script简介 java script document_初始化_06

根据代码可以看出,<span>输出的文本为HELLO WORLD,后面代码改变了<span>输出的内容。

3.JavaScript 能够修改 HTML 元素属性

 语法:document.getElementById(id).attribute=new value

eg:改变<img>标签中的src属性,即改变图片。

<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<img  id="img" src="../img/img1.jpg">
<script>
    document.getElementById("img").src="../img/img2.jpg";
</script>
</body>
</html>

4.JavaScript 能够修改 css样式

语法:document.getElementById(id).style.property=new style

eg:

<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
        #ss{
            width: 100px;
            height: 100px;
            background-color: palevioletred;
        }
    </style>
</head>
<body>
<div id="ss"></div>
<script>
    document.getElementById("ss").style.backgroundColor="red";
</script>
</body>
</html>

运行结果:

java script简介 java script document_java script简介_07