LebBornClass
摘要:與中用方法來獲取和設置元素屬性是屬性的縮寫,在操作中會經常用到有個表達式傳入屬性名獲取屬性的值屬性名屬性值設置屬性的值屬性名函數值設置屬性的函數值給指定元素設置多個屬性值,即屬性名一屬性值一屬性名二屬性值二刪除方法為匹配的元素集合中的每個元
.attr()與.removeAttr()
jQuery中用attr()方法來獲取和設置元素屬性,attr是attribute(屬性)的縮寫,在jQuery DOM操作中會經常用到attr()
attr()有4個表達式
attr(傳入屬性名):獲取屬性的值
attr(屬性名, 屬性值):設置屬性的值
attr(屬性名,函數值):設置屬性的函數值
attr(attributes):給指定元素設置多個屬性值,即:{屬性名一: “屬性值一” , 屬性名二: “屬性值二” , … … }
removeAttr()刪除方法
.removeAttr( attributeName ) : 為匹配的元素集合中的每個元素中移除一個屬性(attribute)
注:
dom概念區分:Attribute和Property翻譯為“特性”和“屬性”:
Attribute就是dom節點自帶的屬性,如:html中常用的id、class、title、align等
Property是這個DOM元素作為對象,其附加的內容,例如,tagName, nodeName, nodeType,defaultChecked, 和defaultSelected使用.prop()方法進行取值或賦值等
獲取Attribute就需要用attr,獲取Property就需要用prop
html()及.text().attr()與.removeAttr()
.attr
.html()方法
獲取集合中第一個匹配元素的HTML內容或設置每一個匹配元素的html內容,具體有3種用法:
.html()不傳入值,就是獲取集合中第一個匹配元素的HTML內容 .html( htmlString )設置每一個匹配元素的html內容 .html( function(index, oldhtml) )用來返回設置HTML內容的一個函數
注:
.html()方法內部使用的是DOM的innerHTML屬性來處理的,所以在設置與獲取上需要注意的一個最重要的問題,這個操作是針對整個HTML內容(不僅僅只是文本內容)
.text()方法
得到匹配元素集合中每個元素的文本內容結合,包括他們的后代,或設置匹配元素集合中每個元素的文本內容為指定的文本內容,具體有3種用法:
.text()得到匹配元素集合中每個元素的合并文本,包括他們的后代 .text( textString )用于設置匹配元素內容的文本 .text( function(index, text) )用來返回設置文本內容的一個函數
注:
.text()結果返回一個字符串,包含所有匹配元素的合并文本
.html與.text的異同:
.html與.text的方法操作是一樣,只是在具體針對處理對象不同 .html處理的是元素內容,.text處理的是文本內容 .html只能使用在HTML文檔中,.text在XML和HTML文檔中都能使用 如果處理的對象只有一個子文本節點,那么html處理的結果與text是一樣的 火狐不支持innerText屬性,用了類似的textContent屬性,.text()方法綜合了2個屬性的支持,所以可以兼容所有瀏覽器
.val().html()與.text()
顯示通過html方法獲取到的內容
顯示通過text方法獲取到的內容
.val()方法主要是用于處理表單元素的值,比如 input, select 和 textarea
.val()方法
.val():無參數,獲取匹配的元素集合中第一個元素的當前值 .val( value ):設置匹配的元素集合中每個元素的值 .val( function ):一個用來返回設置值的函數
注意事項
通過.val()處理select元素,當沒有選擇項被選中,它返回null
.val()方法多用來設置表單的字段的值
如果select元素有multiple(多選)屬性,并且至少一個選擇項被選中,.val()方法返回一個數組,這個數組包含每個選中選擇項的值
.html(),.text()和.val()的差異總結
.html(),.text(),.val()三種方法都是用來讀取選定元素的內容;
.html()是用來讀取元素的html內容(包括html標簽)
.text()用來讀取元素的純文本內容,包括其后代元素
.val()是用來讀取表單元素的"value"值
其中.html()和.text()方法不能使用在表單元素上,而.val()只能使用在表單元素上;
.html()方法使用在多個元素上時,只讀取第一個元素;.val()方法和.html()相同,如果其應用在多個元素上時,只能讀取第一個表單元素的"value"值,但是.text()和他們不一樣,如果.text()應用在多個元素上時,將會讀取所有選中元素的文本內容;
.html(htmlString),.text(textString)和.val(value)三種方法都是用來替換選中元素的內容,如果三個方法同時運用在多個元素上時,那么將會替換所有選中元素的內容;
.html(),.text(),.val()都可以使用回調函數的返回值來動態的改變多個元素的內容、
增加樣式.addClass().val()
通過動態改變類名(class),可以讓其修改元素呈現出不同的效果。在HTML結構中里,多個class以空格分隔,當一個節點(或稱為一個標簽)含有多個class時,DOM元素響應的className屬性獲取的不是class名稱的數組,而是一個含有空格的字符串,這就使得多class操作變得很麻煩
.addClass( className )方法
.addClass( className ) : 為每個匹配元素所要增加的一個或多個樣式名 .addClass( function(index, currentClass) ) : 這個函數返回一個或更多用空格隔開的要增加的樣式名
注意事項
.addClass()方法不會替換一個樣式類名。它只是簡單的添加一個樣式類名到元素上,簡單的描述下:在p元素增加一個newClass的樣式
$("p").addClass("newClass")
p元素的class實際上是 class="orgClass newClass"樣式只會在原本的類上繼續增加,通過空格分隔
刪除樣式.removeClass().addClss()方法
newClass
newClass
LebBornClass
LebBornClass
jQuery通過.addClass()方法可以很便捷的增加樣式。如果需要樣式之間的切換,同樣jQuery提供了一個很方便的.removeClass(),它的作用是從匹配的元素中刪除全部或者指定的class
.removeClass( )方法
.removeClass( [className ] ):每個匹配元素移除的一個或多個用空格隔開的樣式名 .removeClass( function(index, class) ) : 一個函數,返回一個或多個將要被移除的樣式名
注意事項
如果一個樣式類名作為一個參數,只有這樣式類會被從匹配的元素集合中刪除 。 如果沒有樣式名作為參數,那么所有的樣式類將被移除
切換樣式.toggleClass().removeClass()方法
newClass
newClass
LebBornClass
LebBornClass
在做某些效果的時候,可能會針對同一節點的某一個樣式不斷的切換,也就是addClass與removeClass的互斥切換,比如隔行換色效果
jQuery提供一個toggleClass方法用于簡化這種互斥的邏輯,通過toggleClass方法動態添加刪除Class,一次執行相當于addClass,再次執行相當于removeClass
.toggleClass( )方法
在匹配的元素集合中的每個元素上添加或刪除一個或多個樣式類,取決于這個樣式類是否存在或值切換屬性。即:如果存在(不存在)就刪除(添加)一個類
.toggleClass( className ):在匹配的元素集合中的每個元素上用來切換的一個或多個(用空格隔開)樣式類名 .toggleClass( className, switch ):一個布爾值,用于判斷樣式是否應該被添加或移除 .toggleClass( [switch ] ):一個用來判斷樣式類添加還是移除的 布爾值 .toggleClass( function(index, class, switch) [, switch ] ):用來返回在匹配的元素集合中的每個元素上用來切換的樣式類名的一個函數。接收元素的索引位置和元素舊的樣式類作為參數
注意事項:
toggleClass是一個互斥的邏輯,也就是通過判斷對應的元素上是否存在指定的Class名,如果有就刪除,如果沒有就增加
toggleClass會保留原有的Class名后新增,通過空格隔開
隔行換色 .toggleClass(className)和.toggleClass(className,switch)
jQuery入門 | jQuery入門 |
jQuery入門 | jQuery入門 |
jQuery入門 | jQuery入門 |
jQuery入門 | jQuery入門 |
jQuery入門 | jQuery入門 |
.css() 方法:獲取元素樣式屬性的計算值或者設置元素的CSS屬性
獲取
.css( propertyName ) :獲取匹配元素集合中的第一個元素的樣式屬性的計算值 .css( propertyNames ):傳遞一組數組,返回一個對象結果
設置
.css( propertyName, value ):設置CSS .css( propertyName, function ):可以傳入一個回調函數,返回取到對應的值進行處理 .css( properties ):可以傳一個對象,同時設置多個樣式
注意事項
瀏覽器屬性獲取方式不同,在獲取某些值的時候都jQuery采用統一的處理,比如顏色采用RBG,尺寸采用px
.css()方法支持駝峰寫法與大小寫混搭的寫法,內部做了容錯的處理
當一個數只被作為值(value)的時候,jQuery會將其轉換為一個字符串,并添在字符串的結尾處添加px,例如 .css("width",50}) 與 .css("width","50px"})一樣
.css()與.addClass()設置樣式的區別獲取css屬性
獲取顏色獲取文字尺寸獲取寬高尺寸設置css屬性
設置顏色設置文字尺寸設置顏色設置文字尺寸通過回調設置新的值同時設置多少個樣式
可維護性
.addClass()的本質是通過定義個class類的樣式規則,給元素添加一個或多個類。css方法是通過JavaScript大量代碼進行改變元素的樣式
通過.addClass()我們可以批量的給相同的元素設置統一規則,變動起來比較方便,可以統一修改刪除。如果通過.css()方法就需要指定每一個元素是一一的修改,日后維護也要一一的修改,比較麻煩
靈活性
通過.css()方式可以很容易動態的去改變一個樣式的屬性,不需要在去繁瑣的定義個class類的規則。一般來說在不確定開始布局規則,通過動態生成的HTML代碼結構中,都是通過.css()方法處理的
樣式值
.addClass()本質只是針對class的類的增加刪除,不能獲取到指定樣式的屬性的值,.css()可以獲取到指定的樣式值。
樣式的優先級
css的樣式是有優先級的,當外部樣式、內部樣式和內聯樣式同一樣式規則同時應用于同一個元素的時候,優先級如下
外部樣式 < 內部樣式 < 內聯樣式
.addClass()方法是通過增加class名的方式,那么這個樣式是在外部文件或者內部樣式中先定義好的,等到需要的時候在附加到元素上
通過.css()方法處理的是內聯樣式,直接通過元素的style屬性附加到元素上的
通過.css方法設置的樣式屬性優先級要高于.addClass方法
總結:
.addClass與.css方法各有利弊,一般是靜態的結構,都確定了布局的規則,可以用addClass的方法,增加統一的類規則 如果是動態的HTML結構,在不確定規則,或者經常變化的情況下,一般多考慮.css()方式元素的數據存儲.addClss()與.css()方法區別
html5 dataset是新的HTML5標準,允許在普通的元素標簽里嵌入類似data-*的屬性,來實現一些簡單數據的存取。它的數量不受限制,并且也能由JavaScript動態修改,也支持CSS選擇器進行樣式設置。使得data屬性特別靈活,也非常強大。有了這樣的屬性我們能夠更加有序直觀的進行數據預設或存儲。那么在不支持HTML5標準的瀏覽器中,我們如何實現數據存取?jQuery就提供了一個.data()的方法來處理這個問題
jQuery提供的存儲接口
jQuery.data( element, key, value ) //靜態接口,存數據 jQuery.data( element, key ) //靜態接口,取數據 .data( key, value ) //實例接口,存數據 .data( key ) //實例接口,取數據
2個方法在使用上存取都是通一個接口,傳遞元素,鍵值數據。在jQuery的官方文檔中,建議用.data()方法來代替
我們把DOM可以看作一個對象,那么我們往對象上是可以存在基本類型,引用類型的數據的,但是這里會引發一個問題,可能會存在循環引用的內存泄漏風險。通過jQuery提供的數據接口,就很好的處理了這個問題了,我們不需要關心它底層是如何實現,只需要按照對應的data方法使用就行了
2個對應的刪除接口,使用上與data方法其實是一致的,只不過是一個是增加一個是刪除罷了
jQuery.removeData( element [, name ] ) .removeData( [name ] )jQuery.data()靜態方法
點擊看結果
jQuery.data
.data()實例方法
點擊看結果
.data
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/87207.html
摘要:具有相同的父元素,并匹配過濾選擇器子選擇器選擇所有指定元素中指定的的直接子元素??梢娫氐膶挾然蚋叨?,是大于零。元素的或被認為是可見的,因為他們仍然占用空間布局。 jQuery對象轉化成DOM對象 ? ? jQuery庫本質上還是JavaScript代碼,它只是對JavaScript語言進行包裝處理,為了是提供更好更方便快捷的DOM處理與開發常見中經常使用的功能。我們可以用jQuery...
摘要:具有相同的父元素,并匹配過濾選擇器子選擇器選擇所有指定元素中指定的的直接子元素??梢娫氐膶挾然蚋叨?,是大于零。元素的或被認為是可見的,因為他們仍然占用空間布局。 jQuery對象轉化成DOM對象 ? ? jQuery庫本質上還是JavaScript代碼,它只是對JavaScript語言進行包裝處理,為了是提供更好更方便快捷的DOM處理與開發常見中經常使用的功能。我們可以用jQuery...
摘要:如下就是對象或是如下以下兩者的修改都是等價的但是使用不能很好的操作,所以可以將其轉換成對象把元素轉化成的對象總體,表示當前的上下文對象是一個對象,可以調用對象所擁有的屬性和方法。代表的上下文對象是一個的上下文對象,可以調用的方法和屬性值。 一:初識 jquery: 1、 jQuery 只是一個庫,不需要特別的安裝,只需要我們在頁面 標簽內中通過 script 標簽腳本引入 jQuer...
摘要:希望在做所有事情之前,操作文檔。不受層級限制子選擇器在給定的父元素下匹配所有子元素。相鄰選擇器匹配所有緊接在元素后的元素。判斷當前對象中的某個元素是否包含指定類名,包含返回,不包含返回下標過濾器精確選出指定下標元素獲取第個元素。 原文鏈接 http://blog.poetries.top/2016... 首先,來了解一下jQuery學習的整體思路 showImg(https://seg...
閱讀 2830·2021-11-24 09:39
閱讀 4082·2021-10-27 14:19
閱讀 2043·2021-08-12 13:25
閱讀 2334·2019-08-29 17:07
閱讀 1112·2019-08-29 13:44
閱讀 1066·2019-08-26 12:17
閱讀 462·2019-08-23 17:16
閱讀 2048·2019-08-23 16:46