「前端學習」關於 jQuery 的功能

1. jQuery如何獲取元素

通過選擇表達式,放進構造函數jQuery()(簡寫爲$),然後得到被選中的元素。

  • 選擇表達式可以是CSS選擇器
$(document) //選擇整個文檔對象

$('#myId') //選擇ID爲myId的網頁元素

$('div.myClass') // 選擇class爲myClass的div元素

$('input[name=first]') // 選擇name屬性等於first的input元素
  • 也可以是jQuery特有的表達式
$('a:first') //選擇網頁中第一個a元素

$('tr:odd') //選擇表格的奇數行

$('#myForm :input') // 選擇表單中的input元素

$('div:visible') //選擇可見的div元素

$('div:gt(2)') // 選擇所有的div元素,除了前三個

$('div:animated') // 選擇當前處於動畫狀態的div元素
  • 改變選擇元素的結果集

jQuery就是提供各種強大的過濾器,對結果集進行篩選,縮小選擇結果。

$('div').has('p'); // 選擇包含p元素的div元素

$('div').not('.myClass'); //選擇class不等於myClass的div元素

$('div').filter('.myClass'); //選擇class等於myClass的div元素

$('div').first(); //選擇第1個div元素

$('div').eq(5); //選擇第6個div元素

2. jQuery的鏈式操作是怎麼樣的

最終選中網頁元素以後,可以對它進行一系列操作,並且所有操作可以連接在一起,以鏈條的形式寫出來,比如:

$('div').find('h3').eq(2).html('Hello');

//分開來寫
$('div') //找到div元素

.find('h3') //選擇其中的h3元素

.eq(2) //選擇第3個h3元素

.html('Hello'); //將它的內容改爲Hello

這是jQuery比較大的亮點之一。它的原理在於每一步的jQuery操作,返回的都是一個jQuery對象,所以不同操作可以連在一起。

3. jQuery如何創建元素

只要把新元素直接傳入jQuery的構造函數就行了:

$('<p>Hello</p>');

$('<li class="new">new list item</li>');

$('ul').append('<li>list item</li>');

4. jQuery如何移動元素

提供兩組方法,來操作元素在網頁中的位置移動。一組方法是直接移動該元素,另一組方法是移動其他元素,使得目標元素達到我們想要的位置。
假定我們選中了一個div元素,需要把它移動到p元素後面。

  • 第一種方法是使用.insertAfter(),把div元素移動p元素後面:
$('div').insertAfter($('p'));
  • 第二種方法是使用.after(),把p元素加到div元素前面:
$('p').after($('div'));

以上2種方法實現的效果相同, 但有一個重大差別, 那就是返回的元素不一樣. 第一種方法返回div元素, 第二種方法返回p元素. 可酌情選擇.
使用這種模式的操作方法,一共有四對:

.insertAfter().after():在現存元素的外部,從後面插入元素

.insertBefore().before():在現存元素的外部,從前面插入元素

.appendTo().append():在現存元素的內部,從後面插入元素

.prependTo().prepend():在現存元素的內部,從前面插入元素
  • 有時候,我們需要從選擇的結果集出發,移動到附近的相關元素,jQuery也提供了在DOM樹上的移動方法:
$('div').next('p'); //選擇div元素後面的第一個p元素

$('div').parent(); //選擇div元素的父元素

$('div').closest('form'); //選擇離div最近的那個form父元素

$('div').children(); //選擇div的所有子元素

$('div').siblings(); //選擇div的同級元素

5. jQuery如何修改元素屬性

jQuery設計思想之四,就是使用同一個函數,來完成取值(getter)和賦值(setter),即"取值器"與"賦值器"合一。到底是取值還是賦值,由函數的參數決定。

$("em").attr("title");//得到em元素的title值(取值)
$("img").attr("width","180");//設置圖片的寬度(賦值)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章