我们如何通过CSS样式给标签添加样式? 

答:通过选择器(class、id、标签)来添加样式

通过什么可以动态修改网页内容、样式和结构,以及响应用户交互?

答:DOM:文档对象模型,表示所有的标签元素。可以通过DOM动态修改网页内容、样式和结构,以及响应用户交互.

那么如何操作DOM元素呢?

答:

先假设我们初始的结构是这样的:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        div{
            color:red;
        }
    </style>
</head>
<body>
<div>你好</div>

</body>
</html>

得到的结果是这样的:

第一步:获取对应的DOM元素

1、get获取

通过id获取

document.getElementById("id选择器")

返回值为单个元素节点

通过class获取

let doms=document.getElementsByClassName("class选择器");

返回值为一个类数组组成数据结构[第一个类名元素节点,第二个类名元素]

通过标签获取

document.getElementsByTagName("标签名");

返回值为一个类数组组成数据结构[第一个标签名元素节点,第二个标签名元素]

特殊标签获取:

document.documentElement
document.head
document.body
document.title

2、query获取

document.querySelector("选择器名称")

注意:这里的选择器名称的形式要与style标签中的写法一致,如下所示:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        #app{
            font-size: 45px;
            color: #C8A2C8;
        }
        #app1{
            font-size: 45px;
            color: #C8A2C8;
        }
        .box{
            font-size: 70px;
            color: #F0E68C;
        }
        p{
            font-size: 50px;
        }
        #app1 .colo{
            color: #98FB98;
        }
    </style>
</head>
<body>
<div id="app">你好</div>
<div class="box">box1</div>
<div class="box">box2</div>
<p>p小气泡</p>
<div id="app1">
    hello
    <p>世界</p>
    <span class="colo">私密马赛</span>
</div>


<script>
    let dom=document.querySelector("#app");
    console.log(dom);

    let colo=document.querySelector("#app1 .colo");
    console.log(colo);

    let box=document.querySelector(".box");
    console.log(box);

</script>
</body>
</html>

以上例子中都只是获取了单个,如果想要获取多个,可以用以下形式:

let boxs=document.querySelectorAll(".box");
console.log(boxs);

第二步:操作DOM元素的内容获样式或结构

1、获取元素节点包裹的文本内容

let txt=dom.innerText;
console.log(txt);

重新设置元素节点包裹的文本内容

dom.innerText="hello";

这两张图片就是设置前后的变化,可以看出第一行的文本内容被重新设置

注意的是,class和标签获取时的返回值是数组,故在进行文本修改的时候,需要加下标,如下:

let pt=dom1.getElementsByTagName("p");/*获取的pt是一个类数组,数组中才是对应的元素节点*/
pt[0].innerText="js";

2、获取元素节点包裹的所有内容:
 

let dom=document.querySelector("#app1")
console.log(dom.innerHTML);
dom.innerHTML='<p>嘻嘻嘻嘻</p>'

innerText与innerHTML的区别:

innerHTML:可以解析字符串的标签,生效于页面中。如下(第一个是HTML,第二个是Text)

3、设置元素节点的style属性:用于设置标签样式

元素.style.样式名=‘值’

let colo=document.querySelector("#app1 .colo");
colo.style.color="red";

注意:元素样式请使用小驼峰写法,就是中间字母大写

colo.style.fonSize="100px";

4、改变元素属性:

给app元素添加一个class类名为qqq

 let app=document.querySelector("#app");
 console.dir(app);
 app.setAttribute("class","qqq");

添加上句后的前后对比是这样的:

设置行内样式:

app.setAttribute("style","background-color:pink");

得到结果:

获取属性:

console.log(app.getAttribute("style"))

控制台输出结果:

删除属性:

app.removeAttribute("class")

5、DOM事件(行为):鼠标、键盘、用户输入行为

通过监听元素的行为来完成对应的操作

元素绑定事件:通过事件完成对应操作 on是绑定 

元素绑定事件=== 监听元素的对应事件,事件触发后执行函数(事件不触发,函数不执行)

元素.on+事件名=function(){

}

例子:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div id="app" class="qqq">hello666</div>
<button class="but">点击一下,字体变红,字体变大</button>
<input type="text">
<script>
  let app=document.querySelector("#app");
  let but=document.querySelector(".but");

  //设置字体初始值
  let num=16;

  //监听元素点击事件,不点击就不会触发事件函数
  but.onclick=function(){
    num++;
    console.log(num);
    app.style.color="red";
    app.style.fonSize=num+"px";
  }
</script>
</body>
</html>

事件演示:

鼠标事件:
   onclick 鼠标左键单击
   ondblclick 左键双击
   onmouseover onmouseenter 鼠标移入
   onmouseout onmouseleave 鼠标移出
   onmousedown 鼠标按下
   onmouseup 鼠标按下
   onmousemove 鼠标按下
   oncontextmenu 右键单击

键盘事件:
    onkeydown 键按下
    onkeyup 键抬起

系统事件:
     onload 加载完成后
     onerror加载出错后
     onresize 调整窗口大小
     onscroll 滚动时

表单事件:
     onfocus 焦点后
     onblur 失去焦点后
     onchange 改变内容后
     onselect 选择后

6、id与类名设置

设置类名:

className 或者setAttribute("class","类名")

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .box{
            width: 300px;
            height: 300px;
            background-color: #98FB98;
        }
        p{
            color: #F0E68C;
        }
        .ap{
            color: #FFB6C1;
            background-color: #cccccc;
        }
        .ap1{
            font-size: 45px;
        }

    </style>
</head>
<body>
<div class="box"></div>
<p>你好</p>
<script>
    let boxs=document.querySelector(".box")
    let p=document.querySelector("p")

    boxs.onclick=function(){
        p.className="ap ap1"
        //或者另一种写法:p.setAttribute("class","ap")

    }
</script>
</body>
</html>

点击前后,类选择器改变:

设置id名:

元素.id 或者setAttribute("id","id名")

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .box{
            width: 300px;
            height: 300px;
            background-color: #98FB98;
        }
        p{
            color: #F0E68C;
        }
        #app{
            color: #87CEFA;
            background-color: blue;
            font-size: 100px;
        }

    </style>
</head>
<body>
<div class="box"></div>
<p>你好</p>
<script>
    let boxs=document.querySelector(".box")
    let p=document.querySelector("p")

    boxs.onclick=function(){
        p.id="app"
        //或者另一种写法:p.setAttribute("id","app")
    }
</script>
</body>
</html>

得到结果:

今日份学习就到这里啦!see you~~~~

更多推荐