jQuery基礎--樣式篇(3)

1.jQuiery對象與DOM對象  

  對于剛剛接觸jQuery的初學者,我們要清楚認識一點:jQuery對象與DOM對象是不一樣的。可能一時半會分不清楚哪些是jQuery對象,哪些是DOM對象,下面重點介紹一下jQuery對象,以及兩者相互間的轉換。

  下面舉一個簡單的例子:

<p id="cnblogs"></p>

?

  使用原生的javascript處理:通過原生DOM模型提供的document.getElementById(“snblogs”) 方法獲取的DOM元素就是DOM對象,通過DOM方法將自己的innerHTML與style屬性處理文本與顏色。

var p = document.getElementById('snblogs');
p.innerHTML = '您好!通過博客園學習前端才是最佳的途徑';
p.style.color = 'red';

  使用jQuery處理:通過$('#snblogs')方法會得到一個$p的jQuery對象,$p是一個類數組的對象這個對象里面其實是包含了DOM對象的信息的然后封裝了很多操作方法,調用自己的方法html與css處理,得到的效果與標準的JavaScript處理結果是一致的。

?

var $p = $('#cnblogs');
$p.html('您好!通過博客園學習前端才是最佳的途徑').css('color','red');

?

通過標準的JavaScript操作DOM與jQuyer操作DOM的對比,我們不難發現:

  1. 通過jQuery方法包裝后的對象,是jQuery對象,它是一個新的對象.
  2. jQuery與DOM對象完全不是同一個東西,但是又似曾相似,因為他們都能處理DOM.
  3. 通過jQuery處理DOM的操作,可以讓開發者更專注業務邏輯的開發,而不需要我們具體知道哪個DOM節點有那些方法,也不需要關心不同瀏覽器的兼容問題,我們可以通過jQuery更友好的API進行開發,同時代碼也會更加精短.

?2.jQuery對象轉化為DOM對象

  jQuery庫本質上還是JavaScript代碼,它只是對JavaScript語言進行包裝處理,為了是提供更好更方便快捷的DOM處理與開發常見中 經常使用的功能。我們可以用jQuery的同時也能混合JavaScript原生代碼一起使用。通過jQuery生成的對象是一個做了包裝處理的對象,如 果要用jQuery對象自己的方法,就需要滿足這個對象是通過jQuery生成的。?在很多場景中,我們需要jQuery與DOM能夠相互的轉換,它們都 是操作的DOM元素,jQuery是一個類數組對象,DOM對象就是一個單獨的DOM元素。

  如何把jQuery對象轉成DOM對象?

HTML代碼

<div>元素一</div>
<div>元素二</div>
<div>元素三</div>

JavaScript代碼

var $div = $('div') //jQuery對象
var div = $div[0] //轉化成DOM對象
div.style.color = 'red' //操作dom對象的屬性
  用jQuery找到所有的div元素(3個),因為jQuery 對象也是一個數組結構,可以通過數組下標索引找到第一個div元素,通過返回的div對象然后調用它style屬性然修改第一個div元素的顏色。這里需
要注意的一點是,數組的索引是從0開始的,也就是第一個元素下標是0
  

通過jQuery自帶的get()方法

 

jQuery對象自身提供一個.get() 方法允許我們直接訪問jQuery對象中相關的DOM節點,get方法中提供一個元素的索引:

 
var $div = $('div') //jQuery對象
var div = $div.get(0) //通過get方法,轉化成DOM對象
div.style.color = 'red' //操作dom對象的屬性
 

其實我們翻開源碼,看看就知道了,get方法就是利用的第一種方式處理的,只是包裝成一個get讓開發者更直接方便的使用。

3.DOM對象轉化為jQuery對象

 相比較jQuery轉化成DOM,開發中更多的情況是把一個dom對象加工成jQuery對象。$(參數)是一個多功能的方法,通過傳遞不同的參數而產生不同的作用。
 如果傳遞給$(DOM)函數的參數是一個DOM對象,jQuery方法會把這個DOM對象給包裝成一個新的jQuery對象
  

  通過$(dom)方法將普通的dom對象加工成jQuery對象之后,我們就可以調用jQuery的方法了

 

HTML代碼

 
<div>元素一</div>
<div>元素二</div>
<div>元素三</div>
 

JavaScript代碼

 
var div = document.getElementsByTagName('div'); //dom對象
var $div = $(div); //jQuery對象
var $first = $div.first(); //找到第一個div元素
$first.css('color', 'red'); //給第一個元素設置顏色

通過getElementsByTagName獲取到所有div節點的元素,結果是一個dom合集對象,不過這個對象是一個數組合集(3個div元素)。通過$(div)方法轉化成jQuery對象,通過調用jQuery對象中的
first與css方法查找第一個元素并且改變其顏色。


?

轉載于:https://www.cnblogs.com/wgl1995/p/5608382.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/374457.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/374457.shtml
英文地址,請注明出處:http://en.pswp.cn/news/374457.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

hls fifo_HLS優化方法DATAFLOW你用了嗎

上期內容&#xff1a;異步跨時鐘域電路該怎么約束DATAFLOW作為HLS的一種優化方法&#xff0c;對于改善吞吐率(Throughput)、降低延遲(Latency)非常有效。DATAFLOW的作用對象DATAFLOW可以作用于函數&#xff0c;也可以作用于for循環。如下圖所示(圖片來源Figure62, Figure 63, u…

Java 8虛擬擴展方法

我一直關注Java 8 Lambda表達式項目的發展已經有一段時間了&#xff0c;我對其當前的進展狀態感到非常興奮。 我發現的最新“易于理解”的演示文稿是這樣的&#xff1a; http://blogs.oracle.com/briangoetz/resource/devoxx-lang-lib-vm-co-evol.pdf 現在&#xff0c;作為一名…

python爬蟲 庫_七款必備的Python爬蟲庫,你知道幾個?

很多你需要的信息數據都是在網站內&#xff0c;雖然有些網站的數據會以整潔、結構化的形式呈現&#xff0c;但大部分網站卻無法做到這樣。因此&#xff0c;當你想要獲得一些數據的時候&#xff0c;你需要一些爬蟲工具幫助抓取&#xff0c;然后再對其進行分析。今天&#xff0c;…

62個Android Studio小技巧合集

轉載&#xff1a; 原文鏈接&#xff1a;http://laobie.github.io/android/2016/02/14/android-studio-tips.html轉載于:https://www.cnblogs.com/kesteler/p/5618490.html

在Hibernate,EhCache,Quartz,DBCP和Spring中啟用JMX

繼續使用JMX的過程&#xff08;請參閱&#xff1a; 人類JMX &#xff09;&#xff0c;我們將學習如何在一些流行的框架中啟用JMX支持&#xff08;通常是統計和監視功能&#xff09;。 這些信息大部分都可以在項目的主頁上找到&#xff0c;但是我決定在收集這些信息的同時&#…

二叉樹遍歷(前中后)

二叉樹前序遍歷&#xff1a; /*** Definition for binary tree* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode(int x) : val(x), left(NULL), right(NULL) {}* };*/ class Solution { public:vector<int> preorderTravers…

python語言程序設計實踐教程答案實驗六_Python程序設計實踐教程

書名&#xff1a;Python程序設計實踐教程 定價&#xff1a;29.8 ISBN&#xff1a;9787115532602 作者&#xff1a;儲岳中 薛希玲 版次&#xff1a;*1版 出版時間&#xff1a;2020-04 內容提要&#xff1a; 本書是Python語言程序設計的配套實踐教材&#xff0c;分為三部分&#…

400多萬微信用戶如何“變現”?凱叔說了五大秘訣與教訓

凱叔&#xff0c;原名王凱&#xff0c;自媒體“凱叔講故事”創始人&#xff0c;近日在獅享家班委會上做了分享&#xff0c;全是實實在在的實驗性方法論。以下是王凱的分享內容&#xff0c;整理 / 垅青 我講的主題叫“基于內容的MVP探索”&#xff0c;MVP是什么東西&#xff1f;…

使用dbUnit,JSON,HSQLDB和JUnit規則進行數據庫單元測試

在本周TDD課程的運行中&#xff0c;我認為編寫一些夾具以簡化dbUnit的使用將很有趣。 我最初的想法只是教dbUnit有關JSON的知識&#xff0c;但事實證明Lieven Doclo已經做到了。 因此&#xff0c;我決定更進一步&#xff0c;還將dbUnit與JUnit Rules結合起來&#xff0c;并提供…

Codeforces Round #321 (Div. 2) E. Kefa and Watch 線段樹hash

E. Kefa and Watch Time Limit: 1 Sec Memory Limit: 256 MB 題目連接 http://codeforces.com/contest/580/problem/EDescription One day Kefa the parrot was walking down the street as he was on the way home from the restaurant when he saw something glittering by…

python文字游戲源代碼求年紀_Python實現猜年齡游戲代碼實例

1. 在猜年齡的基礎上編寫登錄、注冊方法&#xff0c;并且把猜年齡游戲分函數處理&#xff0c;如 2. 登錄函數 3. 注冊函數 4. 猜年齡函數 5. 選擇獎品函數 代碼如下 import json real_age 18 prize_list [好迪洗發水, 綠箭俠, 小豬佩奇, 布娃娃, 再來一次!] import random us…

KVC 與 KVO

一、Key-Value Coding (KVC)鍵值編碼 KVC&#xff0c;即是指 NSKeyValueCoding&#xff0c;一個非正式的 Protocol&#xff0c;提供一種機制來間接訪問對象的屬性。KVO 就是基于 KVC 實現的關鍵技術之一。 一個對象擁有某些屬性。比如說&#xff0c;一個 Person 對象有一個 nam…

使用模擬的單元測試–測試技術5

我的最后一個博客是有關測試代碼方法的一系列博客中的第四篇&#xff0c;演示了如何創建使用存根對象隔離測試對象的單元測試。 今天的博客探討了有時被視為對立的技術&#xff1a;使用模擬對象進行單元測試。 同樣&#xff0c;我使用了從數據庫檢索地址的簡單方案&#xff1a;…

多線程中的volatile和偽共享

偽共享 false sharing&#xff0c;顧名思義&#xff0c;“偽共享”就是“其實不是共享”。那什么是“共享”&#xff1f;多CPU同時訪問同一塊內存區域就是“共享”&#xff0c;就會產生沖突&#xff0c;需要控制協議來協調訪問。會引起“共享”的最小內存區域大小就是一個cache…

C語言代碼規范(一)縮進與換行

一、縮進的空格數為4個。最好配置代碼編輯器將TAB鍵設置為空格替換&#xff0c;避免出現另一個編輯器打開時格式變亂的情況。 例如Notepad設置 KEIL設置 二、“{” 和 “}”各自獨占一行。 不規范例子&#xff1a; for(i 0; i < student_num; i) { if((score[i] > 0…

armv7 cortex a系列編程手冊_AWTK能為現代GUI編程帶來何種改變?

AWTK是一個伸縮性極強的嵌入式圖形框架&#xff0c;它的誕生會給GUI編程研發工程師帶來哪些改變&#xff1f;AWTK是一個伸縮性極強的嵌入式圖形框架&#xff0c;可在Cortex-M3這樣低端的單片機上運行&#xff0c;也可以在Cortex-A7/A8/A9等處理器&#xff0c;甚至DSP以及X86處理…

【轉】各種概念POJO、JAVABEAN、DAO、DTO、PO、VO、BO、SSH、EJB

POJO&#xff08;pure old java object&#xff09; 是普通java類&#xff0c;有一些private的參數作為對象的屬性&#xff0c;然后針對每一個參數定義get和set方法訪問的接口。我看到這個定義&#xff0c;心里就有個疑問了&#xff0c;這個POJO跟JavaBean的定義怎么就這么像&a…

為什么要編寫單元測試–測試技巧8

我對最近在“您應該測試什么”上的博客有很多反應&#xff0c;有些人出于各種原因同意我的想法&#xff0c;另一些人則認為建議某些類可能不需要單元測試是非常危險的。 已經處理了什么測試&#xff0c;今天的博客涉及為什么要編寫單元測試&#xff0c;而今天的示例代碼是基于一…

Git遷移 從SVN到Git

Migrating from SVN to Git 首先我們需要在Stach或者GitHub上新建一個Repository, 拿到它的URL。 接下來參照如下步驟 : At first we should create a new git repository at Stash and get the repository URL, and then follow below steps: 1. 切換到本地git工作目錄 chang…

C語言代碼規范(二)空格

一、逗號, 之后加空格 printf("error! score[%d] %d\n", i, score[i]); 二、分號; 之后加空格 for(i 0; i < student_num; i) 三、關系運算符<、<、>、>、、! 前后加空格 if( (score[i] > 0) && (score[i] < 100) ) 四、賦值運算符…