Web API---DOM---點擊操作---20個案例

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

點擊操作: >事件: 就是一件事, 有觸發和響應, 事件源 按鈕被點擊,彈出對話框 按鈕 >事件源 點擊 >事件名字 被點了 >觸發了 彈框了 >響應 案例1:點擊按鈕彈出對話框 以下全部是理解,html和js代碼分離: <!DOCTYPE html> <html lang="en"> <head> ...


點擊操作:------>事件: 就是一件事, 有觸發和響應, 事件源

按鈕被點擊,彈出對話框

  •     按鈕---->事件源
  •     點擊---->事件名字
  •     被點了--->觸發了
  •     彈框了--->響應

 

案例1:點擊按鈕彈出對話框    

 以下全部是理解,html和js代碼分離:

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

<head>
  <meta charset="UTF-8">
  <title>jane的自學轉行</title>
</head>

<body>
  <!--第一個版本-->
  <!--html代碼,點擊按鈕彈出對話框,對話框:alert()====>js的代碼-->
  <!--html代碼中嵌入了js的代碼,不方便後期的修改和維護-->
  <input type="button" value="顯示效果" onclick="alert('我被點了')" />
  <!--最終的效果:應該把js代碼和html分離-->

  <!--第二個版本: js代碼很多,但是沒有分離html和js該怎麼做-->
  <script>
    function f1() {
      //函數中可以寫很多的代碼
      alert("這是一個對話框");
    }
  </script>
  <input type="button" value="顯示效果" onclick="f1()" />
  <!--開始分離html和js-->
  <input type="button" value="開始分離代碼" id="btn" />
  <script>
    function f2() {
      alert("開發分離html和js代碼");
    }
    //html標簽中的id屬性中存儲的值是唯一的,
    //id屬性就像人的身份證號碼一樣,不能重覆,頁面中的唯一的標識
    //從文檔中找到id值為btn的這個標簽(元素)
    //document.getElementById("id屬性的值");======>返回的是一個元素對象
    //根據id獲取這個標簽(元素)
    var btnObj = document.getElementById("btn");
    //為按鈕註冊點擊事件
    btnObj.onclick = f2;//不加括弧
  </script>


  <!--最終的版本代碼:-->
  <input type="button" value="最終版" id="btn1" />
  <script>
    //  //根據id屬性的值從整個文檔中獲取這個元素(標簽)
    var btnObj1 = document.getElementById("btn1");
    //為該元素註冊點擊事件
    btnObj1.onclick = function () {
      alert("哦,這真是太好了");
    };


    //根據id屬性的值從整個文檔中獲取這個元素(標簽)
    //為該元素註冊點擊事件
    document.getElementById("btn1").onclick = function () {
      alert("哦,這真是太好了");
    };
  </script>
</body>

</html>

 

最終代碼:

  <input type="button" value="按鈕" id="btn" />
  <script>
    var btnObj = document.getElementById("btn");
    btnObj.onclick = function () {
      alert("哦,小蘇好帥哦");
    };

    // document.getElementById("btn").onclick = function () {
    //   alert("哦,小蘇好帥哦");
    // };
  </script>

 

案例2:點擊按鈕顯示圖片

點擊按鈕的時候,設置img標簽的src屬性有一個圖片的路徑

 

  <input type="button" value="顯示圖片" id="btn" />
  <img src="" alt="" id="im" />

  <script>
    var btnObj = document.getElementById("btn");
    //為按鈕註冊點擊事件,添加事件處理函數
    btnObj.onclick = function () {
      //根據id獲取圖片的標簽,設置圖片的src屬性值
      var imObj = document.getElementById("im");
      imObj.src = "images/liuyan.jpg";
      //設置圖片的大小
      imObj.width = "300";
      imObj.height = "400";
    };

 

案例3:點擊按鈕,修改p標簽的顯示內容

凡是成對的標簽,中間的文本內容,設置的時候,都使用innerText這個屬性的方式
  <input type="button" value="設置p的內容" id="btn" />
  <p id="p1">我是一個p標簽</p>

  <script>
    // 根據id獲取按鈕, 為按鈕註冊點擊事件, 添加事件處理函數
    document.getElementById("btn").onclick = function () {
      //根據id獲取p標簽,設置內容
      document.getElementById("p1").innerText = "這是一個p";
    };

 

案例4:點擊按鈕修改a標簽的地址和熱點文字

1. a標簽在新頁面打開

2. 優化後:

  <input type="button" value="顯示效果" id="btn" />
  <a href="https://www.jiumodiary.com/" id="ak" target="_blank">鳩摩搜書</a>

  <script>
    //根據id獲取按鈕,註冊點擊事件,添加事件處理函數
    //  document.getElementById("btn").onclick = function () {
    //    //根據id獲取超鏈接,設置href屬性
    //    document.getElementById("ak").href = "http://www.itcast.cn";
    //    //根據id獲取超鏈接,設置文字內容
    //    document.getElementById("ak").innerText = "傳智播客";
    //  };

    //優化後的:
    document.getElementById("btn").onclick = function () {
      var aObj = document.getElementById("ak");
      aObj.href = "http://www.itcast.cn";
      aObj.innerText = "傳播智客";
    };
  </script>

 

案例5:點擊按鈕設置多個p標簽的文字內容

  1.   document.getElementsByTagName("標簽的名字");返回的是一個偽數組,
  2.   無論獲取的是一個標簽,還是多個標簽,最終都是在數組中存儲的,這行代碼的返回值就是一個數組

 

  <input type="button" value="請點擊以查看效果" id="btn" />
  <div id="dv1">
    <p>我是一朵小紅花開在春風裡</p>
    <p>我是一朵小紅花開在春風裡</p>
    <p>我是一朵小紅花開在春風裡</p>
    <p>我是一朵小紅花開在春風裡</p>
    <p>我是一朵小紅花開在春風裡</p>
  </div>
  <div>
    <p>我是一顆小草,開在雪天里</p>
    <p>我是一顆小草,開在雪天里</p>
    <p>我是一顆小草,開在雪天里</p>
    <p>我是一顆小草,開在雪天里</p>
  </div>
  <script>
    document.getElementById("btn").onclick = function () {
      //獲取div裡面的p
      var pObjs = document.getElementById("dv1").getElementsByTagName("p");
      //遍曆數組設置文字
      for (var i = 0; i < pObjs.length; i++) {
        pObjs[i].innerText = "我們都是p";
      }
    };
  </script>

 

實現效果:

 

 

案例6:點擊按鈕修改圖片的alt和title屬性

  <input type="button" value="顯示效果" id="btn" />
  <img src="images/cangjingkong.jpg" alt="和新浪吉祥物合影" title="參加新浪活動" />
  <script>
    document.getElementById("btn").onclick = function () {
      var imgObjs = document.getElementsByTagName("img");
      //ElementByTagName返回的是偽數組
      imgObjs[0].alt = "改了";
      imgObjs[0].title = "新浪"
    };
  </script>

 

案例7:點擊按鈕修改所有文本框的值

  <input type="button" value="請點擊修改文本框的值" id="btn"> <br />
  <input type="text" value="" /> <br />
  <input type="text" value="" /> <br />
  <input type="text" value="" /> <br />
  <input type="text" value="" /> <br />
  <input type="text" value="" /> <br />

  <script>
    //根據id獲取按鈕,為按鈕註冊點擊事件,添加事件處理函數
    document.getElementById("btn").onclick = function () {
      //獲取所有的文本框
      var inputs = document.getElementsByTagName("input");
      //判斷這個元素是不是按鈕
      for (var i = 0; i < inputs.length; i++) {
        if (inputs[i].type != "button") {
          inputs[i].value = "兩隻黃鸝鳴翠柳"
        }
      }
    };
  </script>

 

案例8:點擊每個圖片彈出對話框

  <img src="images/1.jpg" alt="" />
  <img src="images/2.jpg" alt="" />
  <img src="images/3.jpg" alt="" />
  <script>
    var imgObjs = document.getElementsByTagName("img");
    for (var i = 0; i < imgObjs.length; i++) {
      imgObjs[i].onclick = function () {
        alert("被點擊了");
      };
    }

 

案例9:點擊按鈕修改按鈕的value屬性

  <input type="button" value="按鈕" id="btn" />
  <script>
    //在某個元素的事件中,自己的事件中的this就是當前的這個元素對象
    var btnObj = document.getElementById("btn");
    btnObj.onclick = function () {
      //修改按鈕的value屬性
      this.value = "我是按鈕";
      this.type = "text";
      this.id = "btn2"; //id也可以修改
    };
  </script>

 

案例10:點擊圖片修改自身的寬和高

  <img src="images/liuyan.jpg" alt="" id="im" />
  <script>
    var imgObj = document.getElementById("im");
    imgObj.onclick = function () {
      this.width = "200";
      this.height = "300";
    };
  </script>

 

案例11:排他功能

1. 所有按鈕value值設為預設值

2. 當前被點擊的按鈕另設置

  <input type="button" value="沒懷孕" />
  <input type="button" value="沒懷孕" />
  <input type="button" value="沒懷孕" />
  <input type="button" value="沒懷孕" />
  <input type="button" value="沒懷孕" />
  <script>
    //獲取所有的按鈕,分別註冊點擊事件
    var btnObjs = document.getElementsByTagName("input");
    //迴圈遍歷所有的按鈕
    for (var i = 0; i < btnObjs.length; i++) {
      btnObjs[i].onclick = function () {
        //再用迴圈,把所有的按鈕的value值設置為預設的值
        for (var j = 0; j < btnObjs.length; j++) {
          btnObjs[j].value = "沒懷孕";
        }
        //當前被點擊的按鈕設置
        this.value = "懷孕了"; //這裡不能用btnObjs[i],註意
      };
    }
  </script>

 

案例12:點擊圖片標簽,設置圖片標簽的src路徑為超鏈接中大圖的路徑

 

  <a href="images/1.jpg" id="ak">
    <img src="images/1-small.jpg" alt="小圖" id="im">
  </a>
  <script>
    document.getElementById("im").onclick = function () {
      this.src = document.getElementById("ak").href;
    };
  </script>

 

案例13:點擊按鈕修改圖片

根據id獲取對象--->封裝成一個函數

  <input type="button" value="點擊顯示大圖" id="btn" />
  <img src="images/1-small.jpg" alt="" id="im">
  <script>
    function my$(id) {
      return document.getElementById(id);
    }

    my$("btn").onclick = function () {
      my$("im").src = "images/1.jpg";
    };
  </script>

 

 案例14:點擊按鈕修改性別和興趣

1. 規律:在表單標簽中, 如果屬性和值只有一個, 並且值是這個屬性本身, 那麼, 在寫js代碼,DOM操作的時候,這個屬性值, 是布爾類型就可以了 2. CSS實現就是radio裡面的checked="checked"  
  <input type="button" value="修改性別" id="btn1">
  <input type="radio" value="1" name="sex" /><input type="radio" value="2" name="sex" id="rad1" /><input type="radio" value="3" name="sex" />保密
  <script>

    function my$(id) {
      return document.getElementById(id);
    }
    my$("btn1"	   

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 從輸入URL到頁面載入發生了什麼? 最近在進行前端性能優化方面的一些工作,發現前端性能方面太廣,不知道如何下手。參考了許多文章,發現最終都會歸咎於一個非常經典的問題: 從輸入URL到頁面載入發生了什麼? 通過連接這個過程,然後針對性地對每個過程進行優化,最終實現的就是我們的前端性能優化。本篇文章主要 ...
  • 一、解決什麼問題 1、開發環境js、css不壓縮,可在瀏覽器選中代碼調試 2、開發環境運行http服務指向打包後的文件夾 3、babel輸出瀏覽器相容的js代碼 二、需要安裝的包 babel-loader:輸出瀏覽器相容的js代碼;命令:<!--?xml version="1.0" encoding ...
  • At a Glance Script tags have access to any element which appears before them in the HTML. jQuery.ready / DOMContentLoaded occurs when all of the HTML ...
  • 目錄 Table of Contents generated with "DocToc" "目錄" "一、參考書籍和數據" "二、原型,[[prototype]]和.prototype以及constructor" "三、原型鏈" "for...in和in操作符" "四、屬性設置和屏蔽" "五、Jav ...
  • 一、關於引入變數 1.變數引入方法: {% block 塊名稱 %} <p>{{變數名}}<p> {% endblock %} 2.引入變數的值中標簽是否轉義: 不轉義: {% autoescape off %} ...HTML代碼... {% endautoescape %} 轉義: {% aut ...
  • 過渡模塊: 1、過渡三要素 1.1必須要有屬性發生變化 1.2必須告訴系統哪個屬性需要執行過渡效果 1.3必須告訴系統過渡效果持續時長 2、格式: div{ width:100px; height:100px; background-color:red; transition-property:wi ...
  • 1.聲明式 function fn() { //do something } 2.函數表達式 let fn = function () { //do something } 3.構造函數 function Person(name,age){ this.name=name this.age=age } ...
  • body{ -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select:none; -moz-user-select: none; -ms-user-select: none; user-select:none... ...
一周排行
    -Advertisement-
    Play Games
  • 1. 說明 /* Performs operations on System.String instances that contain file or directory path information. These operations are performed in a cross-pla ...
  • 視頻地址:【WebApi+Vue3從0到1搭建《許可權管理系統》系列視頻:搭建JWT系統鑒權-嗶哩嗶哩】 https://b23.tv/R6cOcDO qq群:801913255 一、在appsettings.json中設置鑒權屬性 /*jwt鑒權*/ "JwtSetting": { "Issuer" ...
  • 引言 集成測試可在包含應用支持基礎結構(如資料庫、文件系統和網路)的級別上確保應用組件功能正常。 ASP.NET Core 通過將單元測試框架與測試 Web 主機和記憶體中測試伺服器結合使用來支持集成測試。 簡介 集成測試與單元測試相比,能夠在更廣泛的級別上評估應用的組件,確認多個組件一起工作以生成預 ...
  • 在.NET Emit編程中,我們探討了運算操作指令的重要性和應用。這些指令包括各種數學運算、位操作和比較操作,能夠在動態生成的代碼中實現對數據的處理和操作。通過這些指令,開發人員可以靈活地進行算術運算、邏輯運算和比較操作,從而實現各種複雜的演算法和邏輯......本篇之後,將進入第七部分:實戰項目 ...
  • 前言 多表頭表格是一個常見的業務需求,然而WPF中卻沒有預設實現這個功能,得益於WPF強大的控制項模板設計,我們可以通過修改控制項模板的方式自己實現它。 一、需求分析 下圖為一個典型的統計表格,統計1-12月的數據。 此時我們有一個需求,需要將月份按季度劃分,以便能夠直觀地看到季度統計數據,以下為該需求 ...
  • 如何將 ASP.NET Core MVC 項目的視圖分離到另一個項目 在當下這個年代 SPA 已是主流,人們早已忘記了 MVC 以及 Razor 的故事。但是在某些場景下 SSR 還是有意想不到效果。比如某些靜態頁面,比如追求首屏載入速度的時候。最近在項目中回歸傳統效果還是不錯。 有的時候我們希望將 ...
  • System.AggregateException: 發生一個或多個錯誤。 > Microsoft.WebTools.Shared.Exceptions.WebToolsException: 生成失敗。檢查輸出視窗瞭解更多詳細信息。 內部異常堆棧跟蹤的結尾 > (內部異常 #0) Microsoft ...
  • 引言 在上一章節我們實戰了在Asp.Net Core中的項目實戰,這一章節講解一下如何測試Asp.Net Core的中間件。 TestServer 還記得我們在集成測試中提供的TestServer嗎? TestServer 是由 Microsoft.AspNetCore.TestHost 包提供的。 ...
  • 在發現結果為真的WHEN子句時,CASE表達式的真假值判斷會終止,剩餘的WHEN子句會被忽略: CASE WHEN col_1 IN ('a', 'b') THEN '第一' WHEN col_1 IN ('a') THEN '第二' ELSE '其他' END 註意: 統一各分支返回的數據類型. ...
  • 在C#編程世界中,語法的精妙之處往往體現在那些看似微小卻極具影響力的符號與結構之中。其中,“_ =” 這一組合突然出現還真不知道什麼意思。本文將深入剖析“_ =” 的含義、工作原理及其在實際編程中的廣泛應用,揭示其作為C#語法奇兵的重要角色。 一、下劃線 _:神秘的棄元符號 下劃線 _ 在C#中並非 ...