1. 程式人生 > >jQuery設計思想

jQuery設計思想

() 思想 基本 title world width 第一個元素 mat visible

前面的話

  在深入了解jQuery的各個細節之前,需要對jQuery的設計思想有一個大致的了解。在遇到問題時, 知道應該使用jQuery的哪一個功能,然後迅速從手冊中找到具體的用法。本文將詳細介紹jQuery的設計思想

選擇元素

  jQuery的基本設計思想和主要用法,就是"選擇某個網頁元素,然後對其進行某種操作"。這是它區別於其他javascript庫的根本特點

  使用jQuery的第一步,往往就是將一個選擇表達式,放進構造函數jQuery()(簡寫為$),然後得到被選中的元素

【模擬CSS選擇元素】

$(document) //選擇整個文檔對象
$(‘#myId‘) //選擇ID為myId的網頁元素
$(‘div.myClass‘) // 選擇class為myClass的div元素
$(‘input[name=first]‘) // 選擇name屬性等於first的input元素

【特有表達式選擇】

技術分享
$(‘a:first‘) //選擇網頁中第一個a元素
$(‘tr:odd‘) //選擇表格的奇數行
$(‘#myForm :input‘) // 選擇表單中的input元素
$(‘div:visible‘) //選擇可見的div元素
$(‘div:gt(2)‘) // 選擇所有的div元素,除了前三個
$(‘div:animated‘) // 選擇當前處於動畫狀態的div元素
技術分享

【多種篩選方法】

$(‘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元素

寫法

【方法函數化】

  在原生javascript中,賦值操作符用的比較多。而在jQuery中,多使用函數傳參的方式,也就是方法函數化

技術分享
//原生
window.onload = function(){};
//jQuery
$(function(){});

//原生
div.onclick = function(){};
//jQuery
div.click(function(){});

//原生
div.innerHTML = ‘123‘;
//jQuery
div.html(‘123‘);
技術分享

【鏈式操作】

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

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

  分解開來,就是下面這樣:

$(‘div‘) //找到div元素
.find(‘h3‘) //選擇其中的h3元素
.eq(2) //選擇第3個h3元素
.html(‘Hello‘); //將它的內容改為Hello

  這是jQuery最令人稱道、最方便的特點。它的原理在於每一步的jQuery操作,返回的都是一個jQuery對象,所以不同操作可以連在一起

  jQuery還提供了.end()方法,使得結果集可以後退一步

技術分享
$(‘div‘)
.find(‘h3‘)
.eq(2)
.html(‘Hello‘)
.end() //退回到選中所有的h3元素的那一步
.eq(0) //選中第一個h3元素
.html(‘World‘); //將它的內容改為World
技術分享

【取賦值合體】

  操作網頁元素,最常見的需求是取得它們的值,或者對它們進行賦值。jQuery使用同一個函數來完成取值(getter)和賦值(setter),即"取值器"與"賦值器"合一。到底是取值還是賦值,由函數的參數決定

$(‘h1‘).html(); //html()沒有參數,表示取出h1的值
$(‘h1‘).html(‘Hello‘); //html()有參數Hello,表示對h1進行賦值

  常見的取值和賦值函數如下

技術分享
.html() 取出或設置html內容
.text() 取出或設置text內容
.attr() 取出或設置某個屬性的值
.width() 取出或設置某個元素的寬度
.height() 取出或設置某個元素的高度
.val() 取出某個表單元素的值
技術分享

  需要註意的是,如果結果集包含多個元素,那麽賦值的時候,將對其中所有的元素賦值;取值的時候,則是只取出第一個元素的值

  [註意].text()例外,它取出所有元素的text內容

jQuery設計思想