Web API---DOM---點擊操作---part2---14個案例

来源:https://www.cnblogs.com/jane-panyiyun/archive/2019/12/05/11987304.html
-Advertisement-
Play Games

案例1:點擊按鈕禁用文本框 <input type="button" value="禁用文本框" id="btn" /> <input type="text" value="文本框" id="txt" /> <script> document.getElementById("btn").onclic ...


案例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++
              
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 基於ES6語法手寫promise A+ 規範,源碼實現 class Promise { constructor(excutorCallBack) { this.status = 'pending'; this.value = undefined; this.fulfilledAry = []; th ...
  • 設置和獲取 標簽內容和文本內容 總結 設置: 使用innerText主要是設置文本的, 設置標簽內容, 是沒有標簽的效果的 innerHTML是可以設置文本內容 innerHTML主要的作用是在標簽中設置新的html標簽內容, 是有標簽效果的 想要設置標簽內容, 使用innerHTML 想要設置文本 ...
  • 一、HTML概述 htyper text markup language 即超文本標記語言。 超文本: 就是指頁面內可以包含圖片、鏈接,甚至音樂、程式等非文字元素。 標記語言: 標記(標簽)構成的語言。 1、網頁的組成 一個網頁一般由兩部分組成即: HTML(Hypertext Markup Lan ...
  • 當我們執行 JS 代碼的時候其實就是往執行棧中放入函數,那麼遇到非同步代碼的時候該怎麼辦?其實當遇到非同步的代碼時,會被掛起併在需要執行的時候加入到 Task(有多種 Task) 隊列中。一旦執行棧為空,Event Loop 就會從 Task 隊列中拿出需要執行的代碼並放入執行棧中執行,所以本質上來說 ...
  • 這裡介紹的是Win平臺的安裝方法,其他平臺請至Github>Puppeteer. 首先要安裝node.js 可以看我這篇的開頭>【Angular】學習筆記-環境部署、項目建立相關 1.新建項目目錄 2.打開gitbush(常用的Terminal都可以) 3.鍵入 npm i puppeteer 4. ...
  • 總結獲取元素的方式 1. 根據id屬性的值獲取元素,返回來的是一個元素對象 document.getElementById("id屬性的值"); document.getElementById("btn"); 2. 根據標簽名字獲取元素,返回來的是一個偽數組,裡面保存了多個的DOM對象 docume ...
  • 本文由葡萄城技術團隊於博客園翻譯並首發 轉載請註明出處:葡萄城官網,葡萄城為開發者提供專業的開發工具、解決方案和服務,賦能開發者。 如果我們自己編寫從URL中分析和提取元素的代碼,那麼有可能會比較痛苦和麻煩。程式員作為這個社會中最“懶”的群體之一,無休止的重覆造輪子必然是令人難以容忍的,所以大多數瀏 ...
  • 條件語句用於基於不同條件執行不同的動作。 條件語句 在您寫代碼時,經常會需要基於不同判斷執行不同的動作。 您可以在代碼中使用條件語句來實現這一點。 在 JavaScript 中,我們可使用如下條件語句: 使用 if 來規定要執行的代碼塊,如果指定條件為 true 使用 else 來規定要執行的代碼塊 ...
一周排行
    -Advertisement-
    Play Games
  • 基於.NET Framework 4.8 開發的深度學習模型部署測試平臺,提供了YOLO框架的主流系列模型,包括YOLOv8~v9,以及其系列下的Det、Seg、Pose、Obb、Cls等應用場景,同時支持圖像與視頻檢測。模型部署引擎使用的是OpenVINO™、TensorRT、ONNX runti... ...
  • 十年沉澱,重啟開發之路 十年前,我沉浸在開發的海洋中,每日與代碼為伍,與演算法共舞。那時的我,滿懷激情,對技術的追求近乎狂熱。然而,隨著歲月的流逝,生活的忙碌逐漸占據了我的大部分時間,讓我無暇顧及技術的沉澱與積累。 十年間,我經歷了職業生涯的起伏和變遷。從初出茅廬的菜鳥到逐漸嶄露頭角的開發者,我見證了 ...
  • C# 是一種簡單、現代、面向對象和類型安全的編程語言。.NET 是由 Microsoft 創建的開發平臺,平臺包含了語言規範、工具、運行,支持開發各種應用,如Web、移動、桌面等。.NET框架有多個實現,如.NET Framework、.NET Core(及後續的.NET 5+版本),以及社區版本M... ...
  • 前言 本文介紹瞭如何使用三菱提供的MX Component插件實現對三菱PLC軟元件數據的讀寫,記錄了使用電腦模擬,模擬PLC,直至完成測試的詳細流程,並重點介紹了在這個過程中的易錯點,供參考。 用到的軟體: 1. PLC開發編程環境GX Works2,GX Works2下載鏈接 https:// ...
  • 前言 整理這個官方翻譯的系列,原因是網上大部分的 tomcat 版本比較舊,此版本為 v11 最新的版本。 開源項目 從零手寫實現 tomcat minicat 別稱【嗅虎】心有猛虎,輕嗅薔薇。 系列文章 web server apache tomcat11-01-官方文檔入門介紹 web serv ...
  • 1、jQuery介紹 jQuery是什麼 jQuery是一個快速、簡潔的JavaScript框架,是繼Prototype之後又一個優秀的JavaScript代碼庫(或JavaScript框架)。jQuery設計的宗旨是“write Less,Do More”,即倡導寫更少的代碼,做更多的事情。它封裝 ...
  • 前言 之前的文章把js引擎(aardio封裝庫) 微軟開源的js引擎(ChakraCore))寫好了,這篇文章整點js代碼來測一下bug。測試網站:https://fanyi.youdao.com/index.html#/ 逆向思路 逆向思路可以看有道翻譯js逆向(MD5加密,AES加密)附完整源碼 ...
  • 引言 現代的操作系統(Windows,Linux,Mac OS)等都可以同時打開多個軟體(任務),這些軟體在我們的感知上是同時運行的,例如我們可以一邊瀏覽網頁,一邊聽音樂。而CPU執行代碼同一時間只能執行一條,但即使我們的電腦是單核CPU也可以同時運行多個任務,如下圖所示,這是因為我們的 CPU 的 ...
  • 掌握使用Python進行文本英文統計的基本方法,並瞭解如何進一步優化和擴展這些方法,以應對更複雜的文本分析任務。 ...
  • 背景 Redis多數據源常見的場景: 分區數據處理:當數據量增長時,單個Redis實例可能無法處理所有的數據。通過使用多個Redis數據源,可以將數據分區存儲在不同的實例中,使得數據處理更加高效。 多租戶應用程式:對於多租戶應用程式,每個租戶可以擁有自己的Redis數據源,以確保數據隔離和安全性。 ...