整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          深度解析JavaScript的this關鍵字

          深度解析JavaScript的this關鍵字

          者|Austin Tackaberry

          譯者|無明

          出處丨前端之巔

          這篇文章通過簡單的術語和一個真實的例子解釋了 this 是什么以及為什么說它很有用。

          你的 this

          我發現,很多教程在解釋 JavaScript 的 this 時,通常會假設你擁有 Java、C++ 或 Python 等面向對象編程語言的背景。這篇文章主要面向那些對 this 沒有先入之見的人。我將嘗試解釋什么是 this 以及為什么它很有用。

          或許你遲遲不肯深入探究 this,因為它看起來很奇怪,讓你心生畏懼。你之所以使用它,有可能僅僅是因為 StackOverflow 說你需要在 React 用它來完成一些事情。

          在我們深入了解它的真正含義以及為什么要使用它之前,我們首先需要了解函數式編程和面向對象編程之間的區別。

          函數式編程與面向對象編程

          你可能知道也可能不知道,JavaScript 具有函數和面向對象的構造,你可以選擇關注其中一個或兩者兼而有之。

          在我的 JavaScript 之旅的早期,我一方面擁抱函數式編程,一方面像避免瘟疫一樣排斥面向對象編程。我對面向對象關鍵字 this 不甚了解。其中的一個原因是我不明白它存在的必要性。在我看來,完全可以不依賴 this 就可以完成所有的事情。

          在某種程度上,我的看法是對的。

          你可能只關注其中一種范式而從來不去了解另外一種,作為一名 JavaScript 開發者,你的局限性就體現在這里。為了說明函數式編程和面向對象編程之間的差別,我將使用一組 Facebook 好友數據作為示例。

          假設你正在構建一個用戶登錄 Facebook 的 Web 應用,在登錄后顯示一些 Facebook 好友的數據。你需要訪問 Facebook 端點來獲取好友的數據,可能包含一些信息,例如 firstName、lastName、username、numFriends、friendData、birthday 和 lastTenPosts。

          const data=[
           {
           firstName: 'Bob',
           lastName: 'Ross',
           username: 'bob.ross', 
           numFriends: 125,
           birthday: '2/23/1985',
           lastTenPosts: ['What a nice day', 'I love Kanye West', ...],
           },
           ...
          ]
          

          你從(臆造的)Facebook API 獲得上面的數據?,F在,你需要轉換它們,讓它們符合項目需要的格式。假設你要為每個用戶的朋友顯示以下內容:

          • 它們的名字,格式為$ {firstName} $ {lastName};
          • 三篇隨機的帖子;
          • 從他們生日起到現在的天數。

          函數式方法

          如果使用函數式方法,就是將整個數組或數組的每個元素傳給一個返回所需操作數據的函數:

          const fullNames=getFullNames(data)
          // ['Ross, Bob', 'Smith, Joanna', ...]
          

          你從原始數據開始(來自 Facebook API),為了將它們轉換為對你有用的數據,你將數據傳給一個函數,這個函數將輸出你可以在應用程序中顯示給用戶的數據。

          你也可以通過類似的方式獲取三個隨機帖子并計算朋友生日至今的天數。

          函數式方法就是指接受原始數據,將數據傳給一個或多個函數,并輸出對你有用的數據。

          面向對象方法

          對于那些剛接觸編程和學習 JavaScript 的人來說,面向對象方法可能會更難掌握。面向對象是指你將每個朋友轉換為對象,對象包含了用于生成你所需內容的一切。

          你可以創建包含 fullName 屬性的對象,以及 getThreeRandomPosts 和 getDaysUntilBirthday 函數。

          function initializeFriend(data) {
           return {
           fullName: `${data.firstName} ${data.lastName}`,
           getThreeRandomPosts: function() {
           // get three random posts from data.lastTenPosts
           },
           getDaysUntilBirthday: function() {
           // use data.birthday to get the num days until birthday
           }
           };
          }
          const objectFriends=data.map(initializeFriend)
          objectFriends[0].getThreeRandomPosts() 
          // Gets three of Bob Ross's posts
          

          面向對象方法是為你的數據創建對象,這些對象包含了狀態和用于生成對你和你的項目有用的數據的信息。

          這與 this 有什么關系?

          你可能沒有想過會寫出類似 initializeFriend 這樣的東西,你可能會認為它很有用。你可能還會注意到,它其實并非真正的面向對象。

          getThreeRandomPosts 或 getDaysUntilBirthday 方法之所以有用,主要是因為閉包。因為使用了閉包,所以在 initializeFriend 返回之后,它們仍然可以訪問 data。

          假設你寫了另一個方法,叫 greeting。請注意,在 JavaScript 中,方法只是對象的一個屬性,這個屬性的值是一個函數。我們希望 greeting 可以做這些事情:

          function initializeFriend(data) {
           return {
           fullName: `${data.firstName} ${data.lastName}`,
           getThreeRandomPosts: function() {
           // get three random posts from data.lastTenPosts
           },
           getDaysUntilBirthday: function() {
           // use data.birthday to get the num days until birthday
           },
           greeting: function() {
           return `Hello, this is ${fullName}'s data!`
           }
           };
          }
          

          這樣可以嗎?

          不行!

          新創建對象的所有東西都可以訪問 initializeFriend 的變量,但對象本身的屬性或方法不行。當然,你可能會問:

          難道你不能用 data.firstName 和 data.lastName 來返回 greeting 嗎?

          當然可以。但如果我們還想在 greeting 中包含朋友生日至今的天數,該怎么辦?我們必須以某種方式從 greeting 中調用 getDaysUntilBirthday 方法。

          是時候讓 this 上場了!

          那么,this 是什么

          在不同的情況下,this 代表的東西也不一樣。默認情況下,this 指向全局對象(在瀏覽器中,就是 window 對象)。但光知道這點對我們并沒有太大幫助,對我來說有用的是 this 的這條規則:

          如果 this 被用在一個對象的方法中,并且這個方法在對象的上下文中調用,那么 this 就指向這個對象本身。

          你會問:“在對象的上下文中調用……這又是什么意思”?

          別擔心,稍后我們會解釋這個。

          因此,如果我們想在 greeting 中調用 getDaysUntilBirthday,可以直接調用 this.getDaysUntilBirthday,因為在這種情況下,this 指向對象本身。

          注意:不要在全局作用域或在另一個函數作用域內的常規 ole 函數中使用 this!this 是一個面向對象的構造。因此,它只在對象(或類)的上下文中有意義!

          讓我們重構 initializeFriend,讓它使用 this:

          function initializeFriend(data) {
           return {
           lastTenPosts: data.lastTenPosts,
           birthday: data.birthday, 
           fullName: `${data.firstName} ${data.lastName}`,
           getThreeRandomPosts: function() {
           // get three random posts from this.lastTenPosts
           },
           getDaysUntilBirthday: function() {
           // use this.birthday to get the num days until birthday
           },
           greeting: function() {
           const numDays=this.getDaysUntilBirthday() 
           return `Hello, this is ${this.fullName}'s data! It is ${numDays} until ${this.fullName}'s birthday!`
           }
           };
          }
          

          現在,在執行完 intializeFriend 后,這個對象的所有東西都限定在對象本身。我們的方法不再依賴于閉包,它們將使用對象本身包含的信息。

          這是 this 的一種使用方式,現在回到之前的問題:為什么說 this 因上下文不同而不同?

          有時候,你希望 this 可以指向不一樣的東西,比如事件處理程序就是一個很好的例子。假設我們想在用戶點擊鏈接時打開朋友的 Facebook 頁面。我們可能會在對象中添加一個 onClick 方法:

          function initializeFriend(data) {
           return {
           lastTenPosts: data.lastTenPosts,
           birthday: data.birthday,
           username: data.username, 
           fullName: `${data.firstName} ${data.lastName}`,
           getThreeRandomPosts: function() {
           // get three random posts from this.lastTenPosts
           },
           getDaysUntilBirthday: function() {
           // use this.birthday to get the num days until birthday
           },
           greeting: function() {
           const numDays=this.getDaysUntilBirthday() 
           return `Hello, this is ${this.fullName}'s data! It is ${numDays} until ${this.fullName}'s birthday!`
           },
           onFriendClick: function() {
           window.open(`https://facebook.com/${this.username}`)
           }
           };
          }
          

          請注意,我們向對象添加了 username,讓 onFriendClick 可以訪問它,這樣我們就可以在新窗口中打開朋友的 Facebook 頁面?,F在編寫 HTML:

          <button id="Bob_Ross">
           <!-- A bunch of info associated with Bob Ross -->
          </button> 
          

          然后是 JavaScript:

          const bobRossObj=initializeFriend(data[0])
          const bobRossDOMEl=document.getElementById('Bob_Ross')
          bobRossDOMEl.addEventListener("onclick", bobRossObj.onFriendClick)
          

          在上面的代碼中,我們為 Bob Ross 創建了一個對象。我們獲得與 Bob Ross 相關的 DOM 元素?,F在我們想要調用 onFriendClick 方法來打開 Bob 的 Facebook 頁面。應該沒問題吧?

          不行!

          什么地方出了問題?

          請注意,我們為 onclick 處理程序選擇的函數是 bobRossObj.onFriendClick??吹絾栴}所在了嗎?如果我們像這樣重寫它:

          bobRossDOMEl.addEventListener("onclick", function() {
           window.open(`https://facebook.com/${this.username}`)
          })
          

          現在你看到問題所在了嗎?當我們將 onclick 處理程序指定為 bobRossObj.onFriendClick 時,我們實際上是將 bobRossObj.onFriendClick 的函數作為參數傳給了處理程序。它不再“屬于”bobRossObj,也就是說 this 不再指向 bobRossObj。這個時候 this 實際上指向的是全局對象,所以 this.username 是 undefined 的。

          是時候讓 bind 上場了!

          顯式綁定 this

          我們需要做的是將 this 顯式綁定到 bobRossObj。我們可以使用 bind 來實現:

          const bobRossObj=initializeFriend(data[0])
          const bobRossDOMEl=document.getElementById('Bob_Ross')
          bobRossObj.onFriendClick=bobRossObj.onFriendClick.bind(bobRossObj)
          bobRossDOMEl.addEventListener("onclick", bobRossObj.onFriendClick)
          

          之前,this 是基于默認規則設置的。通過使用 bind,我們在 bobRossObj.onFriendClick 中將 this 的值顯式設置為對象本身,也就是 bobRossObj。

          到目前為止,我們已經知道為什么 this 很有用以及為什么有時候需要顯式綁定 this。接下來我們要討論的最后一個主題是箭頭函數。

          箭頭函數

          你可能已經注意到,箭頭函數像是一個時髦的新事物。人們似乎很喜歡它們,因為它們簡潔而優雅。你可能已經知道它們與一般函數略有不同,但不一定非常清楚這些區別究竟是什么。

          或許箭頭函數的不同之處在于:

          在箭頭函數內部,無論 this 處于什么位置,它指的都是相同的東西。

          讓我們用 initializeFriend 示例解釋一下。假設我們想在 greeting 中添加一個輔助函數:

          function initializeFriend(data) {
           return {
           lastTenPosts: data.lastTenPosts,
           birthday: data.birthday,
           username: data.username, 
           fullName: `${data.firstName} ${data.lastName}`,
           getThreeRandomPosts: function() {
           // get three random posts from this.lastTenPosts
           },
           getDaysUntilBirthday: function() {
           // use this.birthday to get the num days until birthday
           },
           greeting: function() {
           function getLastPost() {
           return this.lastTenPosts[0]
           }
           const lastPost=getLastPost() 
           return `Hello, this is ${this.fullName}'s data!
           ${this.fullName}'s last post was ${lastPost}.`
           },
           onFriendClick: function() {
           window.open(`https://facebook.com/${this.username}`)
           }
           };
          }
          

          這樣可以嗎?如果不行,要怎樣修改才行?

          這樣當然是不行的。因為 getLastPost 不是在對象的上下文中調用的,所以 getLastPost 中的 this 會回退到默認規則,即指向全局對象。

          “在對象的上下文中調用”可能是一個比較含糊的概念。要確定一個函數是否是在“對象的上下文中”被調用,最好的辦法是看一下函數是如何被調用的,以及是否有對象“附加”在函數上。

          讓我們來看看執行 bobRossObj.onFriendClick() 時會發生什么:“找到 bobRossObj 對象的 onFriendClick 屬性,調用分配給這個屬性的函數”。

          再讓我們來看看執行 getLastPost() 時會發生什么:”調用一個叫作 getLastPost 的函數”。有沒有注意到,這里并沒有提及任何對象?

          現在來測試一下。假設有一個叫作 functionCaller 的函數,它所做的事情就是調用其他函數:

          functionCaller(fn) {
           fn()
          }
          

          如果我們這樣做會怎樣:functionCaller(bobRossObj.onFriendClick)?可不可以說 onFriendClick 是“在對象的上下文中”被調用的?this.username 的定義存在嗎?

          讓我們來看一下:“找到 bobRossObj 對象的 onFriendClick 屬性。找到這個屬性的值(恰好是一個函數),將它傳給 functionCaller,并命名為 fn?,F在,執行名為 fn 的函數”。請注意,函數在被調用之前已經從 bobRossObj 對象中“分離”,因此不是“在對象 bobRossObj 的上下文中”調用,所以 this.username 是 undefined 的。

          讓箭頭函數來救場:

          function initializeFriend(data) {
           return {
           lastTenPosts: data.lastTenPosts,
           birthday: data.birthday,
           username: data.username, 
           fullName: `${data.firstName} ${data.lastName}`,
           getThreeRandomPosts: function() {
           // get three random posts from this.lastTenPosts
           },
           getDaysUntilBirthday: function() {
           // use this.birthday to get the num days until birthday
           },
           greeting: function() {
           const getLastPost=()=> {
           return this.lastTenPosts[0]
           }
           const lastPost=getLastPost() 
           return `Hello, this is ${this.fullName}'s data!
           ${this.fullName}'s last post was ${lastPost}.`
           },
           onFriendClick: function() {
           window.open(`https://facebook.com/${this.username}`)
           }
           };
          }
          

          箭頭函數是在 greeting 中聲明的。我們知道,當我們在 greeting 中使用 this 時,它指向對象本身。因此,箭頭函數中的 this 指向的對象就是我們想要的。

          英文原文:

          https://medium.freecodecamp.org/a-deep-dive-into-this-in-javascript-why-its-critical-to-writing-good-code-7dca7eb489e7

          箭頭類

          符號

          UNICODE



          符號

          UNICODE



          HTML

          JS

          CSS

          HTML

          JS

          CSS



          ?

          \u21E0

          E0

          ?

          \u21E2

          E2

          ?

          \u21E1

          E1

          ?

          \u21E3

          E3

          ?

          \u219E

          9E

          ?

          \u21A0

          A0

          ?

          \u219F

          9F

          ?

          \u21A1

          A1

          \u2190

          90

          \u2192

          92

          \u2191

          91

          \u2193

          93

          ?

          \u2194

          94

          ?

          \u2195

          95

          ?

          \u21C4

          C4

          ?

          \u21C5

          C5

          ?

          \u21A2

          A2

          ?

          \u21A3

          A3

          ?

          \u21DE

          DE

          ?

          \u21DF

          DF

          ?

          \u21AB

          AB

          ?

          \u21AC

          AC

          ?

          \u21DC

          DC

          ?

          \u21DD

          DD

          ?

          \u219A

          9A

          ?

          \u219B

          9B

          ?

          \u21AE

          AE

          ?

          \u21AD

          AD

          ?

          \u21E6

          E6

          ?

          \u21E8

          E8

          ?

          \u21E7

          E7

          ?

          \u21E9

          E9

          \u25B2

          B2

          ?

          \u25BA

          BA

          \u25BC

          BC

          ?

          \u25C4

          C4

          ?

          \u2794

          94

          ?

          \u2799

          99

          ?

          \u27A8

          A8

          ?

          \u27B2

          B2

          ?

          \u279C

          9C

          ?

          \u279E

          9E

          ?

          \u279F

          9F

          ?

          \u27A0

          A0

          ?

          \u27A4

          A4

          ?

          \u27A5

          A5

          ?

          \u27A6

          A6

          ?

          \u27A7

          A7

          ?

          \u27B5

          B5

          ?

          \u27B8

          B8

          ?

          \u27BC

          BC

          ?

          \u27BD

          BD

          ?

          \u27BA

          BA

          ?

          \u27B3

          B3

          ?

          \u21B7

          B7

          ?

          \u21B6

          B6

          ?

          \u21BB

          BB

          ?

          \u21BA

          BA

          ?

          \u21B5

          B5

          ?

          \u21AF

          AF

          ?

          \u27BE

          BE





          ? 基本形狀類

          符號

          UNICODE



          符號

          UNICODE



          HTML

          JS

          CSS

          HTML

          JS

          CSS



          ?

          \u2764

          64

          ?

          \u2708

          08

          \u2605

          05

          ?

          \u2726

          26

          ?

          \u2600

          00

          \u25C6

          C6

          ?

          \u25C8

          C8

          ?

          \u25A3

          A3

          ?

          \u263B

          3B

          ?

          \u263A

          3A

          ?

          \u2639

          39

          ?

          \u2709

          09

          ?

          \u260E

          0E

          ?

          \u260F

          0F

          ?

          \u2706

          06

          ?

          \uFFFD

          \FFFD

          ?

          \u2601

          01

          ?

          \u2602

          02

          ?

          \u2744

          44

          ?

          \u2603

          03

          ?

          \u2748

          48

          ?

          \u273F

          3F

          ?

          \u2740

          40

          ?

          \u2741

          41

          ?

          \u2618

          18

          ?

          \u2766

          66

          ?

          \u9749

          49

          ?

          \u2742

          42

          ?

          \u2625

          25

          ?

          \u262E

          2E

          ?

          \u262F

          2F

          ?

          \u262A

          2A

          ?

          \u2624

          24

          ?

          \u2704

          04

          ?

          \u2702

          02

          ?

          \u2638

          38

          ?

          \u2693

          93

          ?

          \u2623

          23

          ?

          \u26A0

          A0

          ?

          \u26A1

          A1

          ?

          \u2622

          22

          ?

          \u267B

          7B

          ?

          \u267F

          7F

          ?

          \u2620

          20

          ¥ 貨幣類

          符號

          UNICODE



          符號

          UNICODE



          HTML

          JS

          CSS

          HTML

          JS

          CSS



          $

          $

          \u0024

          >\0024<24

          ¢

          \u00A2

          >\00A2<>

          £

          \u00A3

          >\00A3<>

          ¤

          ¤

          \u00A4

          >\00A4<>

          \u20AC

          AC

          ¥

          \u00A5

          >\00A5<>

          ?

          \u20B1

          B1

          ?

          \u20B9

          B9

          ? 數學類

          符號

          UNICODE



          符號

          UNICODE



          HTML

          JS

          CSS

          HTML

          JS

          CSS



          ?

          ½

          \u00BD

          >\00BD<>

          ?

          ¼

          \u00BC

          >\00BC<>

          ?

          ¾

          \u00BE

          >\00BE<>

          ?

          \u2153

          53

          ?

          \u2154

          54

          ?

          \u215B

          5B

          ?

          \u215C

          5C

          ?

          \u215D

          5D

          \u2030

          30

          %

          %

          \u0025

          >\0025<25

          <

          <

          \u003C

          >\003C<3C

          >

          >

          \u003E

          >\003E<3E

          ? 音樂符號類

          符號

          UNICODE



          符號

          UNICODE



          HTML

          JS

          CSS

          HTML

          JS

          CSS



          ?

          \u2669

          69

          ?

          \u266A

          6A

          ?

          \u266B

          6B

          ?

          \u266C

          6C

          ?

          \u266D

          6D

          ?

          \u266F

          6F

          ? 對錯號

          符號

          UNICODE



          符號

          UNICODE



          HTML

          JS

          CSS

          HTML

          JS

          CSS




           

          \u00A0

          >\00A0<>

          ?

          \u2610

          10

          ?

          \u2611

          11

          ?

          \u2612

          12

          ?

          \u2713

          13

          ?

          \u2714

          14

          ?

          \u10005

          005

          ?

          \u2716

          16

          ?

          \u2717

          17

          ?

          \u2718

          18

          ★ 全都是星星

          符號

          UNICODE



          符號

          UNICODE



          HTML

          JS

          CSS

          HTML

          JS

          CSS



          \u2605

          05

          ?

          \u272D

          2D

          ?

          \u272E

          2E

          \u2606

          06

          ?

          \u272A

          2A

          ?

          \u2721

          21

          ?

          \u272F

          2F

          ?

          \u2735

          35

          ?

          \u2736

          36

          ?

          \u2738

          38

          ?

          \u2739

          39

          ?

          \u273A

          3A

          ?

          \u2731

          31

          ?

          \u2732

          32

          ?

          \u2734

          34

          ?

          \u2733

          33

          ?

          \u273B

          3B

          ?

          \u273D

          3D

          ?

          \u274B

          4B

          ?

          \u2746

          46

          ?

          \u2744

          44

          ?

          \u2745

          45

          ? 星座類

          符號

          UNICODE



          符號

          UNICODE



          HTML

          JS

          CSS

          HTML

          JS

          CSS



          ?

          \u2648

          48

          ?

          \u2649

          49

          ?

          \u264A

          4A

          ?

          \u264B

          4B

          ?

          \u264C

          4C

          ?

          \u264D

          4D

          ?

          \u264E

          4E

          ?

          \u264F

          4F

          ?

          \u2650

          50

          ?

          \u2651

          51

          ?

          \u2652

          52

          ?

          \u2653

          53

          ? 國際象棋類

          符號

          UNICODE



          符號

          UNICODE



          HTML

          JS

          CSS

          HTML

          JS

          CSS



          ?

          \u265A

          5A

          ?

          \u265B

          5B

          ?

          \u265C

          5C

          ?

          \u265D

          5D

          ?

          \u265E

          5E

          ?

          \u265F

          5F

          ?

          \u2654

          54

          ?

          \u2655

          55

          ?

          \u2656

          56

          ?

          \u2657

          57

          ?

          \u2658

          58

          ?

          \u2659

          59

          ? 撲克牌類

          符號

          UNICODE



          符號

          UNICODE



          HTML

          JS

          CSS

          HTML

          JS

          CSS



          ?

          \u2660

          60

          ?

          \u2663

          63

          ?

          \u2665

          65

          ?

          \u2666

          66

          ?

          \u2664

          64

          ?

          \u2667

          67

          ?

          \u2661

          61

          ?

          \u2662

          62

          Ω 希臘字母

          符號

          UNICODE



          符號

          UNICODE



          HTML

          JS

          CSS

          HTML

          JS

          CSS



          Α

          Α

          \u0391

          91

          Β

          Β

          \u0392

          92

          Γ

          Γ

          \u0393

          93

          Δ

          Δ

          \u0394

          94

          Ε

          Ε

          \u0395

          95

          Ζ

          Ζ

          \u0396

          96

          Η

          Η

          \u0397

          97

          Θ

          Θ

          \u0398

          98

          Ι

          Ι

          \u0399

          99

          Κ

          Κ

          \u039A

          9A

          Λ

          Λ

          \u039B

          9B

          Μ

          Μ

          \u039C

          9C

          Ν

          Ν

          \u039D

          9D

          Ξ

          Ξ

          \u039E

          9E

          Ο

          Ο

          \u039F

          9F

          Π

          Π

          \u03A0

          A0

          Ρ

          Ρ

          \u03A1

          A1

          Σ

          Σ

          \u03A3

          A3

          Τ

          Τ

          \u03A4

          A4

          Υ

          Υ

          \u03A5

          A5

          Φ

          Φ

          \u03A6

          A6

          Χ

          Χ

          \u03A7

          A7

          Ψ

          Ψ

          \u03A8

          A8

          Ω

          Ω

          \u03A9

          A9

          ? 十字

          符號

          UNICODE



          符號

          UNICODE



          HTML

          JS

          CSS

          HTML

          JS

          CSS



          ?

          \u2628

          28

          ?

          \u2629

          29

          ?

          \u271D

          1D

          ?

          \u271E

          1E

          ?

          \u271F

          1F

          ?

          \u2720

          20

          ?

          \u271A

          1A

          ?

          \u2020

          20

          ?

          \u2722

          22

          ?

          \u2724

          24

          ?

          \u2723

          23

          ?

          \u2725

          25

          ? 法律符號

          符號

          UNICODE



          符號

          UNICODE



          HTML

          JS

          CSS

          HTML

          JS

          CSS



          ?

          ®

          \u00AE

          >\00AE<>

          ?

          ©

          \u00A9

          >\00A9<>

          ?

          \u2117

          17

          ?

          \u0099

          >\0099<99

          ?

          \u2120

          20





          @ 標點和符號

          符號

          UNICODE



          符號

          UNICODE



          HTML

          JS

          CSS

          HTML

          JS

          CSS



          ?

          «

          \u00AB

          >\00AB<>

          ?

          »

          \u00BB

          >\00BB<>

          ?

          \u008B

          >\008B<8B

          ?

          \u009B

          >\009B<9B

          \u201C

          1C

          \u201D

          1D

          \u2018

          18

          \u2019

          19

          ?

          \u2022

          22

          ?

          \u25E6

          E6

          ?

          ¡

          \u00A1

          >\00A1<>

          ?

          ¿

          \u00BF

          >\00BF<>

          \u2105

          05

          \u2116

          16

          &

          &

          \u0026

          >\0026<26

          @

          @

          \u0040

          >\0040<40

          ?

          \u211E

          1E

          \u2103

          03

          \u2109

          09

          °

          °

          \u00B0

          >\00B0<>



          |

          \u007C

          >\007C<7C

          |

          ¦

          \u00A6

          \u2013

          13

          \u2014

          14

          \u2026

          26

          ?

          \u00B6

          >\00B6<>

          \u223C

          3C

          \u2260


          用法

          三種用法都在里面了

          、html()方法:如果想更改或者是設置 HTML 的內容,我們可以使用 html()方法,首先我們先使用這個方法獲取元素里面的內容 var html=$("p").html()。如果需要設置某元素的 HTML 代碼,那么我們就可以使用此方法加上一個參數。此方法只能應用于 XHTML 中,不能用于 xml。

          2、text()方法,去設置某個元素中的文本內容,代碼是 var text=$("p").text();如果想設置文本同樣需要給它傳一個參數。

          3、val()方法,可以用來設置和獲取元素的值,它不僅僅可以設置元素,同時也能獲取元素,另外,它能是下拉列表框,多選框,和單選框相應的選項被選中,在表單操作中會經常用到。


          主站蜘蛛池模板: 性色AV一区二区三区| 一区二区在线观看视频| 亚洲精品色播一区二区| 亚洲熟女乱色一区二区三区 | 亚洲片一区二区三区| 无码av不卡一区二区三区| 亚洲色无码一区二区三区| 精品乱码一区二区三区在线| 91精品福利一区二区| 国产另类ts人妖一区二区三区| 无码一区二区三区爆白浆| 精品福利一区3d动漫| 精品一区二区三区中文| 国产精品亚洲综合一区在线观看| 亚洲国产欧美国产综合一区| 日韩三级一区二区三区| 视频在线观看一区| 国产成人一区二区三区在线观看| 国产精品高清一区二区人妖 | 爱爱帝国亚洲一区二区三区| 亚洲丶国产丶欧美一区二区三区| 精品视频一区在线观看| 久久久精品人妻一区二区三区| 亚洲欧洲专线一区| 中文字幕一区二区在线播放| 国产精品合集一区二区三区| 一区二区免费国产在线观看| 麻豆aⅴ精品无码一区二区| 国精产品一区一区三区MBA下载| 国产福利电影一区二区三区,亚洲国模精品一区 | 韩国美女vip福利一区| 精品无码国产AV一区二区三区 | 一本久久精品一区二区| 黄桃AV无码免费一区二区三区 | 免费无码VA一区二区三区| 亚洲一区二区视频在线观看| 欧美激情一区二区三区成人| 久久青草国产精品一区| 欧洲精品一区二区三区在线观看| 麻豆一区二区在我观看| 国精品无码一区二区三区在线蜜臀|