DOM速成


DOM速成

DOM速成(Crash Course For Beginners)。教程视频地址:DOM速成

准备

  • 浏览器:Google Chrome(多浏览器测试)
  • 编辑器:Visual Studio Code

什么是DOM

各部分作用:

  • HTML: structure
  • CSS: style
  • JS: function

JavaScript DOM:DOM(Document Object Model),文本对象模型。

DOM结构:树状结构。

有用的插件:Chrome浏览器的HTML Tree Generator插件。

选择

新建HTML、CSS文件,浏览器打开,在开发者界面控制台输入document,返回整个HTML内容。

通过document选取HTML里面的一些东西(Elements):document.getElementsByTagName("body")

获取第一个body,数组实现:document.getElementsByTagName("body")[0]

获取长度:document.getElementsByTagName("body").length

通过类名获取:document.getElementsByClassName("list")

通过ID获取:document.getElementById("title")。(注意是element是单数,因为ID具有唯一性)。

Query选择

(CSS选择器)

  1. document.querySelector("li"):从上到下,选择第一个找到的。
  2. document.querySelectorAll("li")选择所有。
  3. 选择ul下的lidocument.querySelector("ul li")
  4. 使用ID的方式:document.querySelectorAll("#sp-list li")
  5. 使用ID和类:document.querySelectorAll("#sp-list li.list")

选择之后做什么

改CSS样式:document.querySelector("h1").style.color="red"。可以几乎更改所有CSS属性。但是CSS中属性的命名方式是加短横线-,JavaScript DOM中一般是驼峰命名法。

参考网址:HTML DOM Style Object

用变量存储下来:var title = document.querySelector("h1");,然后更改title.style.backgroundColor="white";

添加class:原本HTML文件的标签没有class,但是CSS里面有class的样式。通过DOM选择该标签,然后为改标签添加class,HTML就会使用CSS中已经有的对应该class的样式。document.querySelector("h1").classList.add("title");remove移除。

点击按钮,标题变红色:document.querySelector("h1").classList.toggle("title");document.querySelector("button").addEventListener("click",function(){document.querySelector("h1").classList.toggle("title");});

改文本内容:document.querySelector("h1").innerHTML="Goodbye";。加着重表示:document.querySelector("h1").innerHTML="<em>Goodbye</em>";。直接返回内容:document.querySelector("h1").innerHTML;。(会同时返回HTML标签)不返回HTML标签:document.querySelector("h1").textContent;

属性attribute:document.querySelector("li").attributes;。如果只需要某一个属性:document.querySelector("ul").getAttribute("class");。改某一个属性:document.querySelector("li").attributes.class.value="title";。设置(添加)一个属性:document.querySelector("h1").setAttribute("class","title");

使用的HTML文件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="style.css">
</head>
<body>
    <h1>Hello</h1>
    <button>Click me</button>

    <ul id="sp-list" class="list">
        <li class="list">First</li>
        <li class="list">Second</li>
        <li>Third</li>
    </ul>
</body>
</html>

使用的CSS文件

li.list{
    background-color: red;
}
.title{
    color: red;
}

文档:DOM


文章作者: W&D
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 W&D !
评论
  目录