JavaScript(一)

来源:https://www.cnblogs.com/xiaogeldx/archive/2019/03/30/10628227.html
-Advertisement-
Play Games

本文轉載自:https://blog.csdn.net/xiaogeldx/article/details/85390757 註 在pycharm中快速註釋HTML的方法(用於註釋方法不正確時): File Settings Languages&Frameworks Python Template ...


本文轉載自:https://blog.csdn.net/xiaogeldx/article/details/85390757

  • 在pycharm中快速註釋HTML的方法(用於註釋方法不正確時):
    • File--Settings--Languages&Frameworks--Python Template Languages--Template Languages改為None,HTML和JavaScript註釋方法就都正確了

      JavaScript基礎知識

  • 網頁三要素:HTML,css,js
  • JavaScript和Java沒有任何關係,最多語法看起來有點像
  • JavaScript原名ivescript,是一門動態類型,弱類型基於原型的腳本語言
  • 和HTML複合使用,不能單獨使用
  • 大部分瀏覽器都支持

    JavaScript作用:

  • 頁面特效
  • 前後交互
  • 後臺開發(node)

    JavaScript寫在哪裡

  • 寫在script標簽里
  • 外部js文件引入

    寫在script標簽里

      1.
      <head>
      <meta charset="UTF-8">
      <title>try</title>
      <script>
          alert("wer");
      </script>
      </head>
      <body>
      <div>
          <input type="button" value="點我" onclick="alert('bug')">
      </div>
      2.
      <head>
      <meta charset="UTF-8">
      <title>try</title>
      </head>
      <body>
      <div>
          <input type="button" value="點我" onclick="alert('bug')">
      </div>
      <script>
          alert("wer");
      </script>

    在這裡插入圖片描述

    外部的js文件內,然後引入

      <head>
      <meta charset="UTF-8">
      <title>try</title>
      <script src="js/a.js"></script>
      </head>
      <body>
      <div>
          <input type="button" value="點我" onclick="alert('bug')">
      </div>
  • a.js的代碼:

      alert("wer");

    JS一些註意事項

  • 嚴格區分大小寫
  • 每一行完整語句後面加分號
  • 變數名不能使用關鍵字和保留字
  • 代碼要縮進,保持可讀性
  • 註釋用//

    JS修改元素內容

  • 首先獲取id為xxx的元素 document.getElementByld(" ")
  • var 是js定義變數的關鍵字,創建(聲明變數),如果不加為全局變數
  • innerHTML和innerText可以修改/獲取

    JS獲取元素

  • 通過id獲取元素:id

      document.getElementById(" ");
  • 通過class名字獲取元素:class

      document getElementsByClassName(" ");
  • 通過標簽名獲取元素:tagName

      document.getElementsByTagName(" ");
  • 通過name的屬性獲取元素,一般用於input:name

      document.getElementsByName(" ");
  • 通過css選擇器獲取一個

      document.querySelector(" ");
  • 通過css選擇器獲取所有

      document.querySelectorAll(" ");

    案例

              <!DOCTYPE html>
      <html lang="en">
      <head>
          <meta charset="UTF-8">
          <title>Title</title>
      </head>
      <body>
          <div id="div1">
              <p id="p1"><span>111</span></p>
              <p class="c1">2222</p>
              <span name="span1">3333</span>
          </div>
          <div class="div2">
              <p class="c1">5555</p>
              <span name="span1">6666</span>
              <p name="span1">7777</p>
              <span class="c1">8888</span>
          </div>
          <div>
              <p>9999</p>
              <span>0000</span>
          </div>
          <script type="text/javascript">
              //通過id獲取元素,一個網頁中一個id命名使用一次,所以不用加索引
              var a = document.getElementById('p1');
              a.onclick = function () {
                  alert('bug');
              };
              //通過標簽名獲取元素,需要加索引
              var b = document.getElementsByTagName('span')[0];
              b.onclick = function () {
                  alert('bug');
              };
              // 通過name獲取元素,需要加索引
              var c = document.getElementsByName('span1')[1];
              c.onclick = function () {
                  alert('bug');
              }
              // 通過classname獲取元素,需要加索引
              var d = document.getElementsByClassName('c1')[1];
              d.onclick = function () {
                  alert('bug');
              };
              // 通過css選擇器獲取一個元素
              // 單獨的標簽獲取第一個,如果選擇器里還嵌套標簽,第一個選擇器裡面的所有標簽都能獲取,不能索引
              // 選div時,第一個div標簽里的標簽都能獲取
              var e = document.querySelector('div');
              e.onclick = function(){
                  alert('bug');
              };
              // 通過class標簽獲取所有
              // 此時獲取的是id為div1下的所有的span標簽
              // div標簽里嵌套其他標簽時需要索引,表示第幾個div里的所有標簽都可以獲取
              // 單獨的標簽可以直接索引獲取
              // #div1或者.div2加上裡面的標簽需要索引獲取
              var f = document.querySelectorAll('div')[0];
              f.onclick = function () {
                  alert('bug');
              };
          </script>
      </body>
      </html>

    JavaScript簡單事件

    JS的基礎事件

  • 單擊事件:onclick
  • 雙擊事件:ondblclick
  • 滑鼠劃入:onmouseenter
  • 滑鼠划出:onmouseleave
  • 視窗變化:onresize

      // 瀏覽器視窗有變化時就會出現
      window.onresize = function () {
         alert("3245");
      };
  • 改變下拉框:onchange

      <select>
          <option value="1">蘋果</option>
          <option value="1">橘子</option>
          <option value="1">橙子</option>
      </select>
      <script type="text/javascript">
          var h = document.getElementsByTagName('select')[0];
          //改變下拉框里的值就會彈出
          h.onchange = function () {
              alert('改變了');
              };
      </script>

    操作標簽屬性

  • 合法屬性的增刪改查

      <!DOCTYPE html>
      <html lang="en">
      <head>
          <meta charset="UTF-8">
          <title>try</title>
      </head>
      <body>
      <div>
          <p id="p1" class="s1">我是一句話</p>
      </div>
      <script type="text/javascript">
         var a = document.getElementById("p1");
         // 增/改:無則增,有則改
         a.className="hahaha";
         // 查
         console.log(a.className);
         // 刪除
         a.removeAttribute("class");
         console.log(a);
      </script>
      </body>
      </html>
  • 自定義屬性的增刪改查

      <!DOCTYPE html>
      <html lang="en">
      <head>
          <meta charset="UTF-8">
          <title>try</title>
      </head>
      <body>
      <di
          <p id="p1" class="s1">我是一句話</p>
      </div>
      <script type="text/javascript">
         var a = document.getElementById("p1");
         // 增/改 無則增,有則改
         a.setAttribute("age","m");
         // 查,查到返回true,沒查到返回false
         console.log(a.hasAttribute("age"));
         // 刪除
         a.removeAttribute("age");
         console.log(a);
      </script>
      </body>
      </html>

    JS修改樣式

  • Obj.style.變數=變數值
  1.   <!DOCTYPE html>
      <html lang="en">
      <head>
          <meta charset="UTF-8">
          <title>try</title>
      </head>
      <body>
      <div id="div2" style="width: 100px;height: 100px;color: red;border:1px solid blue">
          <p id="p1" class="s1">我是一句話</p>
      </div>
      <script type="text/javascript">
         var b = document.getElementById("div2");
         b.style.width = "50px";
         b.style.height = "50px";
         console.log(b)
      </Script>
      </body>
      </html>
  2.   <!DOCTYPE html>
      <html lang="en">
      <head>
          <meta charset="UTF-8">
          <title>try</title>
      </head>
      <body>
      <div id="div2" style="width: 100px;height: 100px;color: red;border:1px solid blue">
          <p id="p1" class="s1">我是一句話</p>
      </div>
      <script type="text/javascript">
         var a = document.getElementById("div2");
         var b = document.getElementById("div2");
         b.onclick=function() {
                 a.style.width = "50px";
                 a.style.height = "50px";
             }
         console.log(b)
      </Script>
      </body>
      </html>

    數據類型

  • js提供了一種檢測當前變數的數據類型的方法,也就是typeof關鍵字

    JS的數據類型

  • 五種基本類型+object(複雜型)

    Number類型

  • Number類型包含整數和浮點數(浮點數數值必須包含一個小數點,且小數點後面至少有一位數字)兩種值

      var a = 123;
      console.log(typeof a);
  • NaN:非數字類型
  • isNaN() 函數用於檢查其參數是否是非數字值

      isNaN(123)  //false   
      isNaN("hello")  //true

    String類型

  • 字元串有length屬性
  • 字元串轉換:轉型函數String(),適用於任何數據類型(null,undefined 轉換後為null和undefined);toString()方法(null,defined沒有toString()方法)
  • 字元串要用引號

      var a = "123";
      console.log(typeof a);

    Boolean類型

  • 該類型只有兩個值,true和false

      var a = true;
      console.log(typeof a);

    Undefined類型

  • 只有一個值,即undefined值。使用var聲明瞭變數,但未給變數初始化值,那麼這個變數的值就是undefined

      var a;
      console.log(typeof a);

    Null類型

  • null類型被看做空對象指針,前文說到null類型也是空的對象引用

      var a = null;       //object
      console.log(typeof a);
  • null類型進行typeof操作符後,結果是object,原因在於null類型被當做一個空對象引用

    Object類型

  • js中對象是一組屬性與方法的集合,這裡就要說到引用類型了,引用類型是一種數據結構,用於將數據和功能組織在一起,引用類型有時候也被稱為對象定義,因為它們描述的是一類對象所具有的屬性和方法

    引用類型

    Object類型

  • 我們看到的大多數類型值都是Object類型的實例
  • 創建Object實例的方式有兩種
    • 第一種是使用new操作符後跟Object構造函數,如下所示

        var person = new Object();
        person.name = "Micheal";
        person.age = 24;
    • 第二種方式是使用對象字面量表示法,如下所示

        var person = {
          name : "Micheal",
          age : 24
        };

      Array類型

  • 數組的每一項可以用來保存任何類型的數據,也就是說,可以用數組的第一個位置來保存字元串,第二個位置保存數值,第三個位置保存對象等等
  • 數組的大小是可以動態調整的
  • 創建數組的基本方式有兩種
    • 第一種是使用Array構造函數,如下所示

        var colors = new Array("red","blue","yellow");
    • 第二種是使用數組字面量表示法,如下所示

        var colors = ["red","blue","yellow"];

      Function類型

  • 每個函數都是Function類型的實例,而且都與其他引用類型一樣具有屬性和方法,函數通常是使用函數聲明語法定義的,如下所示

      function sum(num1,num2){
        return num1 + num2;
      };
  • 這和使用函數表達式定義函數的方式相差無幾

      var sun = function (){
        return sum1 + sum2;
      };

    案例

      var name = 'xiaoge';
      alert(typeof name);//string
      var age = 15;
      alert(typeof age);//number
      var flag = true;
      alert(typeof flag);//boolean
      var a;//undefined
      alert(typeof a);
      var b = null;
      alert(typeof b);//object
      var arr = [1,2,3];//object
      alert(typeof arr);
      var user = {
          name:'xiaoge',
          age:18
      };
      alert(typeof user);//object
      alert(typeof console.log());//undefined
      var say = function () {
          alert(name+'很帥');
      };
      alert(typeof say);//function
      alert(say())//xiaoge很帥//undefined

    練習

      <!DOCTYPE html>
      <html lang="en">
      <head>
          <meta charset="UTF-8">
          <title>Title</title>
          <link rel="stylesheet" href="css/reset.css">
          <link rel="stylesheet" href="css/test.css">
          <script src="js/test.js"></script>
      </head>
      <body>
      <div class="d1">
          屬性名:<input type="text" class="an"><br>
          屬性值:<input type="text" class="av"><br>
          <input type="button" value="設置" class="set1">
      </div>
      <div class="d2" style="width: 200px; height: 200px; background-color: yellow; line-height: 200px; text-align: center;">我就是我</div>
      <script type="text/javascript">
          var moumov = document.getElementsByClassName('d2')[0];
          moumov.onmouseenter = function () {
              moumov.innerText = '是我還是我';
              moumov.style.background = 'blue';
          };
          moumov.onmouseleave = function () {
              moumov.innerText = '我就是我';
              moumov.style.background = 'yellow';
          };
          var inp = document.getElementsByTagName('input');
          inp[2].onclick = function () {
              var attr = inp[0].value;
              var attrs = inp[1].value;
              moumov.style[attr] = attrs;
          };
      </script>
      </body>
      </html>

    在這裡插入圖片描述


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

-Advertisement-
Play Games
更多相關文章
  • datagrid combobox輸入框下拉(取消)選值和編輯已選值處理 by:授客 QQ:1033553122 測試環境 jquery-easyui-1.5.3 需求場景 如下,在datagrid中新增、編輯記錄: 新增時通過點選指定combobox下拉列表項來實現選擇、取消選擇所點項(多選com ...
  • 一、JavaScript緩衝公式ease 原生JS沒有自己的緩衝公式,但是你要自己推理的話,必須要懂一些數學和物理公式: 讓div用100毫秒(幀),從left100px的位置變化到left800px的位置,要求勻速: 大致計算如下: 毫秒編號(幀) 距離起點的增量 目前絕對的位置 0 0 100 ...
  • js的常用方法和對象學習String對象:操作字元的。 使用:字元串.函數名。 大小寫轉換: toUpperCase() 轉換大寫 toLowerCase() 轉換小寫 function testString(){ var str="abcdefg"; //大小寫轉換 alert(str.toUpp ...
  • 一、概述 1、HTML5是什麼? HTML5是最新一代的HTML標準,它不僅擁有HTML中所有的特性,而且增加了許多實用的特性,如視頻、音頻、畫布(canvas)等。 2012年12月17日,萬維網聯盟(W3C)正式宣佈凝結了大量網路工作者心血的HTML5規範已經正式定稿。根據W3C的發言稿稱:“H ...
  • HTML文檔是展示Web前段開發工程師成果的最好表示方式,為了便於文檔規範化管理,在編寫HTML文檔時,必須遵循HTML文件命名規則。 HTML文檔命名規則如下: (1)文檔的擴展名為htm或者html,建議統一用html。 (2)文檔名稱只可由英文字母、數字或下劃線組成,建議以字母或下劃線開始。 ...
  • (1)HTML標記是由尖括弧包圍的關鍵詞。所有標記均以“<”開始,以“>”結束。結束的標記在開始名稱前加上斜杠“/”。例如頭部標記格式如下所示:<head> ……</head> (2)根據標記類型,正確書寫標記,單個標記最好在右尖括弧前加1個斜杠“/”,如換行標記是單個標記“<br>”,成對標記最好 ...
  • 1.CSS 中鏈接的使用 2.CSS 中游標的使用 3.CSS 中 DHTML 的使用 4.CSS 中縮放的使用 1 18 8. .1 1 S CSS 中 鏈接的使用 超鏈接偽類屬性 a:link 表示該超鏈接文字尚未被點選 a:visited 表示該超鏈接文字已被點選過 a:active 表示該超 ...
  • width="" height=""屬性可根據要求自己設定 ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...