zoukankan      html  css  js  c++  java
  • JS---DOM---点击操作---part2---14个案例

    案例1:点击按钮禁用文本框

      <input type="button" value="禁用文本框" id="btn" />
      <input type="text" value="文本框" id="txt" />
    
      <script>
        document.getElementById("btn").onclick = function () {
          document.getElementById("txt").disabled = true;
        };
      </script>

    案例2:点击按钮修改列表的背景颜色

      <input type="button" value="变色" id="btn" />
      <ul id="uu">
        <li>王陆</li>
        <li>海云帆</li>
        <li>闻宝</li>
        <li>琉璃仙</li>
        <li>王舞</li>
      </ul>
      <script>
        document.getElementById("btn").onclick = function () {
          document.getElementById("uu").style.backgroundColor = "pink";
        };
      </script>

     案例3:点击超链接弹出对话框,但阻止超链接的默认的跳转

    先执行弹框,用return false停止事件

      <!--第一种写法:-->
      <a href="http://www.baidu.com" onclick="alert('哎呀我被点了'); return false">百度1</a>
    
      <!--第二种写法-->
      <script>
        function f1() {
          alert("好漂亮呀");
          return false;
        }
      </script>
      <a href="http://www.baidu.com" onclick="return f1()">百度2</a>
    
    
      <!--第三种写法:-->
      <a href="http://www.baidu.com" id="ak">百度3</a>
      <script>
        document.getElementById("ak").onclick = function () {
          alert("嘎嘎");
          return false;
        };
      </script>

    案例4:点击小图,下面显示大图

      <a href="images/1.jpg" id="ak">
        <img src="images/1-small.jpg" alt="">
      </a>
      <img src="" alt="" id="big">
      <script src="common.js"></script>
      <script>
        //点击超链接
        my$("ak").onclick = function () {
          //big图片的src变成当前对象的地址href
          my$("big").src = this.href;
          return false; //阻止默认超链接挑转
        };
      </script>

    案例5:美女相册

    <!DOCTYPE html>
    <html>
    
    <head lang="en">
      <meta charset="UTF-8">
      <title></title>
      <style type="text/css">
        body {
          font-family: "Helvetica", "Arial", serif;
          color: #333;
          background-color: #ccc;
          margin: 1em 10%;
        }
    
        h1 {
          color: #333;
          background-color: transparent;
        }
    
        a {
          color: #c60;
          background-color: transparent;
          font-weight: bold;
          text-decoration: none;
        }
    
        ul {
          padding: 0;
        }
    
        li {
          float: left;
          padding: 1em;
          list-style: none;
        }
    
        #imagegallery {
    
          list-style: none;
        }
    
        #imagegallery li {
          margin: 0px 20px 20px 0px;
          padding: 0px;
          display: inline;
        }
    
        #imagegallery li a img {
          border: 0;
        }
      </style>
    </head>
    
    <body>
    
      <h2>
        美女画廊
      </h2>
    
      <ul id="imagegallery">
        <li><a href="images/1.jpg" title="美女A">
            <img src="images/1-small.jpg" width="100" alt="美女1" />
          </a></li>
        <li><a href="images/2.jpg" title="美女B">
            <img src="images/2-small.jpg" width="100" alt="美女2" />
          </a></li>
        <li><a href="images/3.jpg" title="美女C">
            <img src="images/3-small.jpg" width="100" alt="美女3" />
          </a></li>
        <li><a href="images/4.jpg" title="美女D">
            <img src="images/4-small.jpg" width="100" alt="美女4" />
          </a></li>
      </ul>
      <div style="clear:both"></div>
    
    
      <!--显示大图的-->
      <img id="image" src="images/placeholder.png" alt="" width="450" />
      <p id="des">选择一个图片</p>
    
      <script src="common.js"></script>
      <script>
        //从ul中标签获取获取所有的a标签
        var aObjs = my$("imagegallery").getElementsByTagName("a");
        //循环遍历所有的a标签
        for (var i = 0; i < aObjs.length; i++) {
          //为每个a标签注册点击事件
          aObjs[i].onclick = function () {
            //为id为image的标签的src赋值
            my$("image").src = this.href;
            //为p标签赋值
            my$("des").innerText = this.title;
            //阻止超链接默认的跳转
            return false;
          };
        }
      </script>
    </body>
    </html>

    实现效果:

    案例6:列表隔行变色

    练习的时候,因为background拼写错误,找bug找了很久....在加入console.log("哈哈")测试后,大致定位到改背景颜色部分出错。

    <!-- 奇黄偶绿 -->
      <input type="button" value="隔行变色" id="btn" />
      <ul id="brandlist">
        <li>雅诗兰黛</li>
        <li>兰蔻</li>
        <li>契尔氏</li>
        <li>海蓝之谜</li>
        <li>欧舒丹</li>
        <li>雅顿</li>
      </ul>
    
      <script src="common.js"></script>
      <script>
        // my$("btn").onclick = function () {
        //   //获取所有li标签
        //   var list = my$("brandlist").getElementsByTagName("li");
        //   for (var i = 0; i < list.length; i++) {
        //     if (i % 2 == 0) {
        //       list[i].style.backgroundColor = "yellow";
        //     } else {
        //       list[i].style.backgroundColor = "green";
        //     }
        //   }
        // };
    
        //优化后
        my$("btn").onclick = function () {
          var list = my$("brandlist").getElementsByTagName("li");
          for (var i = 0; i < list.length; i++) {
            list[i].style.backgroundColor = i % 2 == 0 ? "yellow" : "green";
          }
        };
      </script>

    案例7:鼠标划过,显示和隐藏二维码

    <!DOCTYPE html>
    <html>
    
    <head lang="en">
      <meta charset="UTF-8">
      <title></title>
      <style>
        .nodeSmall {
          width: 50px;
          height: 50px;
          background: url(images/bgs.png) no-repeat -159px -51px;
          position: fixed;
          right: 10px;
          top: 40%;
        }
    
        .erweima {
          position: absolute;
          top: 0;
          left: -150px;
        }
    
        .nodeSmall a {
          display: block;
          width: 50px;
          height: 50px;
        }
    
        .hide {
          display: none;
        }
    
        .show {
          display: block;
        }
      </style>
    
    
    </head>
    
    <body>
      <div class="nodeSmall" id="node_small">
        <a href="#"></a>
        <!--锚定-->
        <div class="erweima hide" id="er">
          <img src="images/456.png" alt="" />
        </div>
      </div>
    
    
      <script src="common.js"></script>
      <script>
        ////获取鼠标要进入的a标签
        var aObj = my$("node_small").getElementsByTagName("a")[0];
        //为a注册鼠标进入
        aObj.onmouseover = function () {
          my$("er").className = "erweima show";
        };
        //为a注册鼠标离开
        aObj.onmouseout = function () {
          my$("er").className = "erweima hide";
        };
      </script>
    </body>
    </html>

    案例8:根据Name属性值获取元素

      <input type="button" value="显示效果" id="btn" /> <br />
      <input type="text" value="你好" name="name1" /> <br />
      <input type="text" value="你好" name="name3" /> <br />
      <input type="text" value="你好" name="name2" /> <br />
      <input type="text" value="你好" name="name1" /> <br />
      <input type="text" value="你好" name="name1" /> <br />
    
      <script src="common.js"></script>
      <script>
        my$("btn").onclick = function () {
          var inputs = document.getElementsByName("name1");
          for (var i = 0; i < inputs.length; i++) {
            inputs[i].value = "我很好";
          }
        };
      </script>

    实现效果:

     案例9:点击按钮设置应用cls类样式的标签的背景颜色为hotpink

    getElementsByClassName();------>h5的, IE8及以下不支持
      <p>第一个p标签</p>
      <p class="cls">第二个p标签</p>
      <span>第一个行内元素span</span> <br />
      <span class="cls">第二个行内元素span</span> <br />
      <div>第一个盒子</div> <br />
      <div class="cls">第二个盒子</div> <br />
      <input type="button" value="显示效果" id="btn" /> <br />
      <script src="common.js"></script>
      <script>
    
        my$("btn").onclick = function () {
          //根据类样式的名字来获取元素
          var objs = document.getElementsByClassName("cls");
          for (var i = 0; i < objs.length; i++) {
            //设置每个元素的背景颜色
            objs[i].style.backgroundColor = "hotpink";
          }
        };

     案例10:点击按钮弹出对话框--->根据选择器的方式获取元素

    <input type="button" value="显示效果" id="btn"/>
    <p>这是一个p</p>
    <p class="cls">这是一个p</p>
    <span>这是一个span</span>
    <span class="cls">这是一个span</span>
    <script src="common.js"></script>
    <script>
    
      //点击按钮弹出对话框
      //根据选择器的方式获取元素
    // var btnObj= document.querySelector("#btn");
    //  btnObj.onclick=function () {
    //      alert("哈哈,我又变帅了");
    //  };
    
      var objs=document.querySelectorAll(".cls");
      for(var i=0;i<objs.length;i++){
        objs[i].style.backgroundColor="green";
      }
    </script>

    案例11:div边框高亮显示

    <head>
      <meta charset="UTF-8">
      <title>jane自学转行</title>
      <style>
        * {
          margin: 0;
          padding: 0;
        }
    
        div {
          width: 200px;
          height: 150px;
          background-color: pink;
          float: left;
          margin-top: 5px;
          margin-left: 10px;
          /* 加同色边框解决抖动问题 */
          border: 2px solid pink;
        }
      </style>
    </head>
    <body>
      <div></div>
      <div></div>
      <div></div>
      <div></div>
      <script src="common.js"></script>
      <script>
        //获取所有div
        var dvObjs = document.getElementsByTagName("div");
        //遍历div
        for (var i = 0; i < dvObjs.length; i++) {
          //为每个div添加鼠标进入的事件
          dvObjs[i].onmouseover = function () {
            this.style.border = "2px solid hotpink";
          };
          //为每个div添加鼠标进入的事件
          dvObjs[i].onmouseout = function () {
            this.style.border = "";
          };
        }
        </script>
      </body>

    案例12:模拟搜索框,获得焦点和失去焦点

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
      <meta charset="UTF-8">
      <title></title>
      <style>
        input {
          color: gray;
        }
      </style>
    </head>
    
    <body>
      <input type="text" value="请输入搜索内容" id="txt">
      <script src="common.js"></script>
      <script>
    
        //获取文本框
        //注册获取焦点的事件
        my$("txt").onfocus = function () {
          //判断文本框的内容是不是默认的内容
          if (this.value == "请输入搜索内容") {
            //是默认内容就清空默认,字体颜色变为黑色
            this.value = "";
            this.style.color = "black";
          }
        };
        //注册获取焦点的事件
        my$("txt").onblur = function () {
          //判断文本框是否空,空的话就重新设置默认文字和颜色
          if (this.value == "") {
            this.value = "请输入搜索内容";
            this.style.color = "gray";
          }
        };
      </script>
    </body>
    </html>

    案例13:验证文本密码框长度

      <input type="password" id="txt">
      <script src="common.js"></script>
      <script>
        my$("txt").onblur = function () {
          if (this.value.length >= 6 && this.value.length <= 10) {
            this.style.backgroundColor = "green";
          } else {
            this.style.backgroundColor = "red";
          }
        };
    
      </script>

    案例14:设置和获取文本框的值

      <input type="text" value="文本框" id="txt" />
    
      <script src="common.js"></script>
      <script>
        //设置和获取文本框的值
        my$("txt").onblur = function () {
          this.value = "锄禾日当午";
          console.log(this.value);
        };
      </script>
  • 相关阅读:
    Leetcode-784 Letter Case Permutation(字母大小写全排列)
    Leetcode-450 Delete Node in a BST(删除二叉搜索树中的节点)
    Leetcode-423 Reconstruct Original Digits from English(从英文中重建数字)
    Leetcode-692 Top K Frequent Words(前K个高频单词)
    Leetcode-355 Design Twitter(设计推特)
    Leetcode-229 Majority Element II(求众数 II)
    Leetcode-557 Reverse Words in a String III(反转字符串中的单词 III)
    LeetCode
    LeetCode
    LeetCode
  • 原文地址:https://www.cnblogs.com/jane-panyiyun/p/11987304.html
Copyright © 2011-2022 走看看