jQuery基礎(樣式篇,DOM對象,選擇器,屬性樣式)


 
1. $(document).ready 的作用是等頁面的文檔(document)中的節點都加載完畢后,再執行后續的代碼,因為我們在執行代碼的時候,可能會依賴頁面的某一個元素,我們要確保這個元素真正的的被加載完畢后才能正確的使用。
    
$(document).ready(function() {   內容  });
 

1.jQuery對象與DOM對象

 
jQuery對象與DOM對象是不一樣的
 
普通處理,通過標准JavaScript處理:
 
var p = document.getElementById('imooc');
p.innerHTML = '您好!通過慕課網學習jQuery才是最佳的途徑';
p.style.color = 'red';
 
jQuery的處理:
 
var $p = $('#imooc');
$p.html('您好!通過慕課網學習jQuery才是最佳的途徑').css('color','red');

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

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

 
var $div = $('div') //jQuery對象
var div = $div[0] //轉化成DOM對象
div.style.color = 'red' //操作dom對象的屬性
 

3.DOM對象轉化成jQuery對象

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

4.jQuery選擇器之id選擇器】

 
$( "#id" )
 

5.jQuery選擇器之類選擇器

 
$( ".class" )
 

6.jQuery選擇器之元素選擇器

 
$( "element" )
 

7.jQuery選擇器之全選擇器(*選擇器)

 
$( "*" )
 

8.jQuery選擇器之層級選擇器

 

 

 

9.jQuery選擇器之基本篩選選擇器

 

 

 

10.jQuery選擇器之內容篩選選擇器

 

 

 

11.jQuery選擇器之可見性篩選選擇器

 

 

12.jQuery選擇器之屬性篩選選擇器

 

 

 

13.jQuery選擇器之特殊選擇器this

 
換成jQuery的做法:
 
$('p').click(function(){
    //把p元素轉化成jQuery的對象
    var $this= $(this)
    $this.css('color','red')
})
this,表示當前的上下文對象是一個html對象,可以調用html對象所擁有的屬性和方法。
$(this),代表的上下文對象是一個jquery的上下文對象,可以調用jQuery的方法和屬性值。
 

14.jQuery的屬性與樣式之.attr()與.removeAttr()

 
attr()有4個表達式
 
- attr(傳入屬性名):獲取屬性的值
- attr(屬性名, 屬性值):設置屬性的值
- attr(屬性名,函數值):設置屬性的函數值
- attr(attributes):給指定元素設置多個屬性值,即:{屬性名一: “屬性值一” , 屬性名二: “屬性值二” , … … }
 
removeAttr()刪除方法
 
.removeAttr( attributeName ) : 為匹配的元素集合中的每個元素中移除一個屬性(attribute)
 

15.jQuery的屬性與樣式之html()及.text()

 
.html()方法
 
獲取集合中第一個匹配元素的HTML內容 或 設置每一個匹配元素的html內容,具體有3種用法:
 
- .html() 不傳入值,就是獲取集合中第一個匹配元素的HTML內容
- .html( htmlString )  設置每一個匹配元素的html內容
- .html( function(index, oldhtml) ) 用來返回設置HTML內容的一個函數
 
.text()方法
 
得到匹配元素集合中每個元素的文本內容結合,包括他們的后代,或設置匹配元素集合中每個元素的文本內容為指定的文本內容。,具體有3種用法:
 
- .text() 得到匹配元素集合中每個元素的合並文本,包括他們的后代
- .text( textString ) 用於設置匹配元素內容的文本
- .text( function(index, text) ) 用來返回設置文本內容的一個函數
 

16.jQuery的屬性與樣式之.val()

 
jQuery中有一個.val()方法主要是用於處理表單元素的值,比如 input, select 和 textarea。
 
- .html(),.text(),.val()都可以使用回調函數的返回值來動態的改變多個元素的內容。
 
.val()方法
 
- .val()無參數,獲取匹配的元素集合中第一個元素的當前值
- .val( value ),設置匹配的元素集合中每個元素的值
- .val( function ) ,一個用來返回設置值的函數
 
 注意事項:
 
- 通過.val()處理select元素, 當沒有選擇項被選中,它返回null
- .val()方法多用來設置表單的字段的值
- 如果select元素有multiple(多選)屬性,並且至少一個選擇項被選中, .val()方法返回一個數組,這個數組包含每個選中選擇項的值
 

17.jQuery的屬性與樣式之增加樣式.addClass()

 
.addClass( className )方法
 
- .addClass( className ) : 為每個匹配元素所要增加的一個或多個樣式名
- .addClass( function(index, currentClass) ) : 這個函數返回一個或更多用空格隔開的要增加的樣式名
 
注意事項:
 
.addClass()方法不會替換一個樣式類名。它只是簡單的添加一個樣式類名到元素上
 

18.jQuery的屬性與樣式之刪除樣式.removeClass()

 
.removeClass( )方法
 
- .removeClass( [className ] ):每個匹配元素移除的一個或多個用空格隔開的樣式名
- .removeClass( function(index, class) ) : 一個函數,返回一個或多個將要被移除的樣式名
 

19.jQuery的屬性與樣式之切換樣式.toggleClass()

 
.toggleClass( )方法:在匹配的元素集合中的每個元素上添加或刪除一個或多個樣式類,取決於這個樣式類是否存在或值切換屬性。即:如果存在(不存在)就刪除(添加)一個類
 
- .toggleClass( className ):在匹配的元素集合中的每個元素上用來切換的一個或多個(用空格隔開)樣式類名
- .toggleClass( className, switch ):一個布爾值,用於判斷樣式是否應該被添加或移除
- .toggleClass( [switch ] ):一個用來判斷樣式類添加還是移除的 布爾值
- .toggleClass( function(index, class, switch) [, switch ] ):用來返回在匹配的元素集合中的每個元素上用來切換的樣式類名的一個函數。接收元素的索引位置和元素舊的樣式類作為參數
 
注意事項:
 
- toggleClass是一個互斥的邏輯,也就是通過判斷對應的元素上是否存在指定的Class名,如果有就刪除,如果沒有就增加
- toggleClass會保留原有的Class名后新增,通過空格隔開
 

20.jQuery的屬性與樣式之樣式操作.css()

 
.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"})一樣
 
    //合並設置,通過對象傳設置多個樣式
        $('.seventh').css({
            'font-size'        :"15px",
            "background-color" :"#40E0D0",
            "border":"1px solid red"
        })
 

21.jQuery的屬性與樣式之.css()與.addClass()設置樣式的區別

 
可維護性:
 
.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()方式
 

22.jQuery的屬性與樣式之元素的數據存儲

 
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 ] )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM