jQuery_02之元素操作及事件綁定

来源:http://www.cnblogs.com/Jupiter258/archive/2016/11/05/6032895.html
-Advertisement-
Play Games

1、操作元素之屬性: ①attr讀:$(“selector”).attr(“屬性名”);=>getAttribute(“屬性名”);改:$(“selector”).attr(“屬性名”,值);=>setAttribute(“屬性名”,值);*(*無法訪問不再開始標簽中存在的prop屬性;例:chec ...


1、操作元素之屬性:

  ①attr讀:$(“selector”).attr(“屬性名”);=>getAttribute(“屬性名”);改:$(“selector”).attr(“屬性名”,值);=>setAttribute(“屬性名”,值);*(*無法訪問不再開始標簽中存在的prop屬性;例:checked,selected,disabled);

  ②prop讀:$(“selector”).prop(“屬性名”);=>elem.屬性名;改:$(“selector”).prop(“屬性名”,值);

  ③移除屬性:$(“selector”).removeAttr(“屬性名”);=>removeAttribute(“屬性名”);

2、操作元素之內容:

  ①html原文:讀:$(“selector”).html();=>elem.innerHTML;改:$(“selector”).html(“html片段”);=>elem.innerHTML=”html片段”;清空元素:$(“selector”).empty();=>elem.innerHTML=””;

  ②純文本:讀:$(“selector”).text();=>elem.textContent/innerText;改:$(“selector”).text(“文本”);

  ③表單元素的value:讀:$(“selector”).val();改:$(“selector”).val(值);

3、操作元素之樣式:

  ①直接操作CSS屬性:$(“selector”).css(“CSS屬性名”);=>getComputedStyle();$(“selector”).css(“CSS屬性名”,值);=>elem.style.CSS屬性名=值;同時修改多個屬性值:$(“selector”).css({屬性名1:值1,屬性名2:值2,……});*(css()能讀取所有屬性,但只能修改內聯樣式,屬性名須去橫線化駝峰);

  ②修改class屬性:a、完整修改:$(“selector”).attr(“class”,”類名”);b、追加:$(“selector”).addClass(“類名”);c、移除:$(“selector”).removeClass(“類名”);d、清除:$(“selector”).attr(“class”,””);或者$(“selector”).removeClass();e、判斷是否包含:$(“selector”).hasClass(“類名”);f、在有或沒有指定類名之間切換:$(“selector”).toggleClass(”類名“);

4、遍歷節點:

  ①獲得父元素:$(“selector”).parent();=>elem.parentNode;或elem.parentElement;

  ②獲得兄弟元素:下一個兄弟$(“selector”).next([selector]);=>elem.nextElementSibling;前一個兄弟:$(“selector”).prev([selector]);=>elem.previousElementSibling;其他兄弟:$(“selector”).siblings([selector]);

  ③子元素:直接子元素:$(“selector”).children([selector]);所有子代元素:$(“selector”).find(selector);*(find()必須加selector);

5、添加:

  ①創建節點:var $elem=$(“完整html元素代碼段”);

  ②添加:追加到parent下所有子節點末尾:$(parent).append($elem);作為parent的第一個子節點插入:$(parent).prepend($elem);插入到child之後:$(child).after($elem);插入到child之前:       $(child).before($elem);

6、其它操作:

  ①刪除:$(要刪除的元素).remove();

  ②替換:$(old).replaceWith(新元素);或$(新元素).replaceAll(old);

  ③複製:var $clone=$(“selector”).clone([true]);*(true:為深度克隆包括事件處理函數);

7、事件綁定之bind:

  ①$(…).bind(“事件名”,fn)=>addEventListener;為同一元素的事件處理函數綁定多個函數對象;

  ②$(…).unbind(“事件名”,fn)=>removeEventListener;如果有可能移除事件處理函數,則綁定時必須用實名函數綁定,不能用匿名函數;重載:a、不帶任何參數:移除元素上所有事件處理函數綁定;b、只帶一個事件名稱參數:移除元素上指定事件名稱綁定的所有函數對象;c、帶兩個參數:僅移除事件元素上指定事件名稱綁定的執行的函數對象;

8、事件綁定之delegate:

  ①事件代理:讓指定父元素下所有符合要求的子元素都能使用事件處理函數(包括生成);原理:利用事件冒泡:a、僅將事件處理函數綁定在父元素;b、獲得目標元素:e.target;c、僅響應符合條件的元素的事件;

  ②事件代理使用:將事件綁定到parent上(利用冒泡),只有符合selector條件的元素才能響應事件;$(parent).delegate(“selector”,“事件名”,function(e){e.target});移除綁定:$(parent).undelegate(“selector”,”事件名”,function(e){e.target});

9、其它綁定:

  ①一次性事件:$(…).one(“事件名”,fn);只能執行一次事件處理函數,執行後自動解除;

  ②將元素所有事件綁定到document:$(…).live(“事件名”,fn);$(…).die(“事件名”,fn);

  ③僅為一個元素綁定事件處理函數:$(“target”).on(“事件名”,fn);

  ④利用冒泡:$(“parent”).on(“事件名”,“selector”,fn);解除綁定off;


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

-Advertisement-
Play Games
更多相關文章
  • 這是我在面試大公司時碰到的一個筆試題,當時自己雲里霧裡的胡寫了一番,回頭也曾思考過,最終沒實現也就不了了之了。 昨天看到有網友說面試中也碰到過這個問題,我就重新思考了這個問題的實現方法。 對於想進大公司的童鞋,我想多說兩句,基礎知識真的很關鍵。平時在工作中也深刻體會到,沒有扎實的基礎知識,簡單問題容 ...
  • 目前來看,團隊內部前端項目已全面實施組件化開發。組件化的好處太多,如:按需載入、可復用、易維護、可擴展、少挖坑、不改組件代碼直接切成伺服器端渲染(如 "Nuclear" 組件化可以做到,大家叫同構)... 怎麼做到這麼強大的優勢,來回憶下以前見過的坑,或者現有項目里的坑。 CSS層疊樣式?保佑不要污 ...
  • 1. 使用require.js的意義 (1)實現JS文件的非同步載入,避免網頁因為載入JS文件緩慢造成網頁未響應 (2)管理模塊之間的依賴性,便於代碼的編寫和維護。頁面中只需要引入require.js和main.js,其餘的js文件全部通過require.js管理。 2. 獲取require.js r ...
  • 本文版權歸博客園和作者本人共同所有,轉載和爬蟲請註明原文地址。 寫在前面 好多做web開發的朋友,在學習數據結構和演算法時可能比較討厭C和C++,上學的時候寫過的也忘得差不多了,更別提沒寫過的了。但幸運的是,你會JavaScript啊。我想說學好數據結構和基本演算法並非是要我們必須要去書寫,演算法的工作有 ...
  • 總結一下自己在寫這個需求遇到的問題,相信大家應該是經常遇到的。即要求滾輪滾動到指定的位置。先看下基本的解決方案。 1.給鏈接a加個#的方式來實現跳轉。(錨點方法)這裡直接貼下代碼: html頁面: css樣式: 該錨點法,不需要任何的js代碼,即可實現跳轉的方法。缺點:點擊鏈接url發生變化,刷新的 ...
  • 一、Redux介紹 Redux的設計思想很簡單,就兩句話: 二、Redux基本概念和API Store Store就是保存數據(state)的地方,整個應用只能有一個Store。Redux通過createStore來生成store。 State Store對象包含所有State,某一時刻的數據集合就 ...
  • 在WebGL場景中導入多個Babylon骨骼模型,在區域網用WebSocket實現多用戶交互控制。 ...
  • 時光轉眼即逝,又到周六了,今天寫點某部分人看不起的css玩玩! 轉換 轉換屬性transform: 瀏覽器首碼: -webkit-transform;-o-transform;-moz-transform;-ms-transform; 取值: none : 預設值,沒有轉換操作 transform- ...
一周排行
    -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# ...