JS DOM操作案例

显示隐藏表单文本内容

<input type="text" value="手机">
 1         var text = document.querySelector("input")
 2         // 获取焦点
 3         text.onfocus = function () {
 4             if (this.value === '手机') {
 5                 this.value = ''
 6             }
 7         }
 8         // 失去焦点
 9         text.onblur = function () {
10             if (this.value === '') {
11                 this.value = '手机'
12             }
13         }

通过element.className获取修改元素样式

 <div class="first" id="conter">文本</div>
var conter = document.getElementById("conter")
        conter.onclick = function () {
            // 通过修改元素的ClassName更改元素的样式适用于样式多或者繁杂的情况下
            this.className = 'change'
            // 如果想要保留之前的class
            this.className = 'first change'
        }

效果图

 

密码框错误提示

<div class="register">
        <input type="password" id="ipt">
        <p class="message" id="message">请输入6-12位密码</p>
    </div>
 1   var ipt = document.getElementById("ipt")
 2         var message = document.getElementById("message")
 3         ipt.onblur = function () {
 4             // 根据ipt.value长度判断
 5             if (this.value.length < 6 || this.value.length > 12) {
 6                 message.className = 'message wrong'
 7                 message.innerHTML = '您输入的位数不对要求6~12位'
 8             } else {
 9                 message.className = 'message right'
10                 message.innerHTML = '您输入的正确'
11             }
12         }

效果图

css代码:

 1 <style>
 2         .box {
 3             background-image: url(../imges/TB1eiXTXlTH8KJjy0FiXXcRsXXa-24-595.png);
 4             background-repeat: no-repeat;
 5         }
 6 
 7         .change {
 8             font-size: 203px;
 9         }
10 
11         .register {
12             width: 600px;
13             margin: 100px auto;
14         }
15 
16         .message {
17             display: inline-block;
18             font-size: 12px;
19             color: #999;
20             padding-left: 20px;
21         }
22 
23         .wrong {
24             color: red;
25         }
26 
27         .right {
28             color: green;
29 
30         }
31     </style>

 

 

 

 

 

 

百度换肤效果

1       <ul class="baidu">
2           <li><img src="../imges/business-pic3.jpg" alt=""></li>
3           <li><img src="../imges/business-pic4.jpg" alt=""></li>
4       </ul>

1           var imgs = document.querySelector(".baidu").querySelectorAll("img")
2           // 给每个可以换肤的图片循环注册点击事件
3           for (var i = 0; i < imgs.length; i++) {
4              imgs[i].onclick = function () {
5                  // 点击图片的路径
6                  // 把这个路径给body就可以了
7                  document.body.style.backgroundImage = 'url(' + this.src + ')'
8              }
9          }

 效果图

表格

 1 <table>
 2         <thead>
 3             <tr>
 4                 <th><input type="checkbox" id="j_cbAll"></th>
 5                 <th>2</th>
 6                 <th>1</th>
 7                 <th>2</th>
 8                 <th>1</th>
 9                 <th>2</th>
10             </tr>
11         </thead>
12         <tbody id="j_tb">
13             <tr>
14                 <td><input type="checkbox"></td>
15                 <td>c</td>
16                 <td>c</td>
17                 <td>c</td>
18                 <td>c</td>
19                 <td>c</td>
20             </tr>
21             <tr>
22                 <td><input type="checkbox"></td>
23                 <td>c</td>
24                 <td>c</td>
25                 <td>c</td>
26                 <td>c</td>
27                 <td>c</td>
28             </tr>
29         </tbody>
30     </table>

 

表格隔行变色

 1   // 获取的是tbody中的行
 2         var trs = document.querySelector("tbody").querySelectorAll("tr")
 3         for (var i = 0; i < trs.length; i++) {
 4             // 鼠标经过
 5             trs[i].onmousemove = function () {
 6                 this.className = 'bg'
 7             }
 8             // 鼠标离开
 9             trs[i].onmouseout = function () {
10                 this.className = ''
11             }
12         }

 

 

表格全选

 1 var j_cbAll = document.getElementById("j_cbAll")
 2         var ipt = document.getElementById("j_tb").getElementsByTagName("input")
 3         j_cbAll.onclick = function () {
 4             // 得到当前复选框的状态
 5             console.log(this.checked);
 6             for (var i = 0; i < ipt.length; i++) {
 7                 ipt[i].checked = this.checked
 8             }
 9         }
10         // 下面按钮影响上面按钮
11         for (var j = 0; j < ipt.length; j++) {
12             ipt[j].onclick = function () {
13                 // flag控制全选按钮是否选中
14                 var flag = true;
15                 // 每次发生点击都要检查是否全选中
16                 for (var a = 0; a < ipt.length; a++) {
17                     if (!ipt[a].checked) {
18                         flag = false;
19                         break; //退出for循环 可以提高效率 只要有一个没有选中剩下的就不需要循环判断了
20                     }
21                 }
22                 j_cbAll.checked = flag
23             }
24         }

效果图

css代码:
 1         body {
 2             background-image: url(../imges/erwm.jfif);
 3             background-repeat: no-repeat;
 4         }
 5 
 6         .baidu {
 7             width: 200px;
 8             height: 100px;
 9             margin: 0 auto;
10             list-style: none;
11 
12         }
13 
14         .baidu img {
15             width: 100px;
16             height: 100px;
17             float: left;
18         }
19 
20         .bg {
21             background-color: pink;
22         }

 

posted @ 2020-03-31 12:11  徐12  阅读(417)  评论(0编辑  收藏  举报