JS修改元素的属性

Posted 瑾言**

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS修改元素的属性相关的知识,希望对你有一定的参考价值。

1. 获取,修改元素内容

(1)获取元素内容

innerText// 返回指定标签中 的内容,但是不识别html标签,去除空格和换行

innerHTML    //直接返回整个标签的内容,包括HTML标签,空格,和换行

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <div class="d1">
        123 
        456
        <span>456</span>
    </div>

    <script>
        //先获取类选择为d1 的元素
        var div01 = document.querySelector(".d1");
        //innerText ,获取指定标签的内容,
        //但是不识别HTML标签,并去除空格和换行
        console.log(div01.innerText);
        console.log("===========================================");
        

        //innerHTML  获取指定标签里面所有的内容,
        //包括HTML标签和空格换行
        console.log(div01.innerHTML);
        
        
    </script>
</body>

</html>

 

 

(2)修改元素的内容

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <meta name="viewport" content="width=device-width, initial-scale=1.0">
 6     <title>Document</title>
 7 </head>
 8 <body>
 9     <div>hahhahahahahahha</div>
10     <script>
11         //修改元素的内容,首先你要获取那个元素
12         var div01 = document.querySelector("div");
13         //绑定一个鼠标经过事件
14         div01.onmouseover  = function(){
15             //就是这么简单,同理使用 innerText 也可以修改元素的内容,方法
16             //一样,但是一般都是使用innerHTML 来修改元素的内容
17             this.innerHTML = "lalalallalal";
18         }
19     </script>
20 </body>
21 </html>

 

2. 修改元素的属性

(1)修改标签内的属性  (如     <img  src="........."    >中src这样的属性)

先获取元素,然后直接修改元素的属性即可

示例:有一个按钮,点击可以切换下方的图片

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <meta name="viewport" content="width=device-width, initial-scale=1.0">
 6     <title>Document</title>
 7     <style>
 8         button{
 9             display: block;
10             width: 160px;
11             height: 30px;
12             margin: 100px auto;
13         }
14 
15         div{
16             width: 269px;
17             height: 69px;
18             margin: 0 auto;
19         }
20     </style>
21 </head>
22 <body>
23     <button >this</button>
24     <div > <img src="./img/big01.jpg" alt=""></div>
25 
26     <script>
27         var btn = document.querySelector("button");
28         var img = document.querySelector("img")
29 
30         flag = 0;
31         btn.onclick = function(){
32             if(flag == 0){
33                 //修改元素的属性
34                 img.src = "./img/big02.jpg";
35                 flag = 1;
36             }else{
37                 img.src = "./img/big01.jpg"
38                 flag = 0;
39             }
40         }
41     </script>
42 </body>
43 </html>

点击前:

 

 点击后:

 

 

(2) 表单元素的属性设置

表单元素是特殊的,你无法通过innerHTML去修改表单中的内容,可以通过 value属性进行修改

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
         #text01{
            width: 260px;
            height: 30px;
            background-color: rgb(132, 125, 133,.3);
            color: #999;
        }
    </style>
</head>
<body>
    <input type="text" name="" id="text01" value="请输入密码:" >

    <script>
        //获取表单input
        var input = document.querySelector("#text01")
        //获得焦点事件  onfocus   焦点就是鼠标的光标
        //失去焦点事件  onblur

        //介绍一种新的注册事件的方式
        //方法监听注册事件    事件源.addEventListener(\'事件类型\',function(){事件处理程序})
        //传统方式注册事件  : 事件类型以 on开头,如onclick, onmouseover, onfoucs,而方法监听
        //方式注册事件的事件类型不需要以 on 开头。

        //传统方式注册事件,同一个元素的同一个事件只能有一个事件处理程序
        //方法监听方式注册事件,同一个元素的同一个事件可以注册多个监听处理函数

        input.addEventListener("focus",function(){
            //当表单获得焦点后,将其内容变为空,再将其类型变为 密码框
            this.value = "";
            this.type = "password";
        })

      
    </script>

</body>
</html>

 

 

 

 

 

(3) 修改元素的样式属性

可以通过  element.style 进行修改

 

 

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <meta name="viewport" content="width=device-width, initial-scale=1.0">
 6     <title>Document</title>
 7     <style>
 8         div{
 9             width: 0;
10             height: 0;
11             border: 200px solid transparent;
12             border-bottom-color: violet;
13             margin:30px auto;
14             background-color: yellow;
15 
16         }
17     </style>
18 </head>
19 <body>
20     <div></div>
21 
22     <script>
23         //可以通过 element.style 来修改元素的样式属性,如大小,颜色,位置
24         //比如 将div 元素中的那个黄色的三角修改为绿色
25         var div = document.querySelector("div");
26         div.addEventListener("click",function(){
27             //注意属性名和css 中的不太一样,命名采用驼峰式方法
28             this.style.borderBottomColor = "green";
29 
30         })
31 
32        
33     </script>
34 </body>
35 </html>

 

 

 点击后:

 

 当我们要改变 的属性太多时,可以在css中另外创建一个类标签的样式,然后再js 中通过 className调用这个

样式来完成修改,相当于给这个元素重新设置了新的class 

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <meta name="viewport" content="width=device-width, initial-scale=1.0">
 6     <title>Document</title>
 7     <style>
 8         div{
 9             width: 0;
10             height: 0;
11             border: 200px solid transparent;
12             border-bottom-color: violet;
13             margin:30px auto;
14             background-color: yellow;
15 
16         }
17 
18         .yuan{
19             width: 300px;
20             height: 300px;
21             background-color: turquoise;
22             border-radius: 50%;
23         }
24     </style>
25 </head>
26 <body>
27     <div></div>
28 
29     <script>
30         //可以通过 element.className 重新定义样式
31         //比如 将div 元素中变成一个蓝色的圆形
32         var div = document.querySelector("div");
33         div.addEventListener("click",function(){
34             
35             this.className = "yuan";
36         })
37 
38        
39     </script>
40 </body>
41 </html>

 

以上是关于JS修改元素的属性的主要内容,如果未能解决你的问题,请参考以下文章

JS获取元素修改元素/css样式/标签属性简单事件数据类型

JS常用代码片段2-值得收藏

JS常用代码片段2-值得收藏

selenium3+python自动化9-JS增加删除修改HTML元素属性

前端开发常用js代码片段

JS1-属性操作