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
  • GoF之工廠模式 @目錄GoF之工廠模式每博一文案1. 簡單說明“23種設計模式”1.2 介紹工廠模式的三種形態1.3 簡單工廠模式(靜態工廠模式)1.3.1 簡單工廠模式的優缺點:1.4 工廠方法模式1.4.1 工廠方法模式的優缺點:1.5 抽象工廠模式1.6 抽象工廠模式的優缺點:2. 總結:3 ...
  • 新改進提供的Taurus Rpc 功能,可以簡化微服務間的調用,同時可以不用再手動輸出模塊名稱,或調用路徑,包括負載均衡,這一切,由框架實現並提供了。新的Taurus Rpc 功能,將使得服務間的調用,更加輕鬆、簡約、高效。 ...
  • 本章將和大家分享ES的數據同步方案和ES集群相關知識。廢話不多說,下麵我們直接進入主題。 一、ES數據同步 1、數據同步問題 Elasticsearch中的酒店數據來自於mysql資料庫,因此mysql數據發生改變時,Elasticsearch也必須跟著改變,這個就是Elasticsearch與my ...
  • 引言 在我們之前的文章中介紹過使用Bogus生成模擬測試數據,今天來講解一下功能更加強大自動生成測試數據的工具的庫"AutoFixture"。 什麼是AutoFixture? AutoFixture 是一個針對 .NET 的開源庫,旨在最大程度地減少單元測試中的“安排(Arrange)”階段,以提高 ...
  • 經過前面幾個部分學習,相信學過的同學已經能夠掌握 .NET Emit 這種中間語言,並能使得它來編寫一些應用,以提高程式的性能。隨著 IL 指令篇的結束,本系列也已經接近尾聲,在這接近結束的最後,會提供幾個可供直接使用的示例,以供大伙分析或使用在項目中。 ...
  • 當從不同來源導入Excel數據時,可能存在重覆的記錄。為了確保數據的準確性,通常需要刪除這些重覆的行。手動查找並刪除可能會非常耗費時間,而通過編程腳本則可以實現在短時間內處理大量數據。本文將提供一個使用C# 快速查找並刪除Excel重覆項的免費解決方案。 以下是實現步驟: 1. 首先安裝免費.NET ...
  • C++ 異常處理 C++ 異常處理機制允許程式在運行時處理錯誤或意外情況。它提供了捕獲和處理錯誤的一種結構化方式,使程式更加健壯和可靠。 異常處理的基本概念: 異常: 程式在運行時發生的錯誤或意外情況。 拋出異常: 使用 throw 關鍵字將異常傳遞給調用堆棧。 捕獲異常: 使用 try-catch ...
  • 優秀且經驗豐富的Java開發人員的特征之一是對API的廣泛瞭解,包括JDK和第三方庫。 我花了很多時間來學習API,尤其是在閱讀了Effective Java 3rd Edition之後 ,Joshua Bloch建議在Java 3rd Edition中使用現有的API進行開發,而不是為常見的東西編 ...
  • 框架 · 使用laravel框架,原因:tp的框架路由和orm沒有laravel好用 · 使用強制路由,方便介面多時,分多版本,分文件夾等操作 介面 · 介面開發註意欄位類型,欄位是int,查詢成功失敗都要返回int(對接java等強類型語言方便) · 查詢介面用GET、其他用POST 代碼 · 所 ...
  • 正文 下午找企業的人去鎮上做貸後。 車上聽同事跟那個司機對罵,火星子都快出來了。司機跟那同事更熟一些,連我在內一共就三個人,同事那一手指桑罵槐給我都聽愣了。司機也是老社會人了,馬上聽出來了,為那個無辜的企業經辦人辯護,實際上是為自己辯護。 “這個事情你不能怪企業。”“但他們總不能讓銀行的人全權負責, ...