
Chương 1: Gii thiu v jQuery
Vi s phát trin rt mau l! c#a Internet, ngư&i dùng ngày càng quan tâm hơn ñ-n hình th/c c#a m0t
trang web. Trưc ñây m0t trang web ch5 c6n có banner, n0i dung và ít footer h&i h;t là ñã ñư;c cho là
m0t trang web hoàn ch5nh. Nhưng bây gi& trang web ñó ph>i có banner b?t m?t, n0i dung hay và còn
nhiu hiu /ng lA m?t khác nCa thì mi có th thu hút ñư;c ngư&i ñEc. Chính vì th- nhCng web
designer b?t ñ6u chú ý ñ-n các thư vin JavaScript mI như jQuery ñ tAo ra các hiu /ng có th
tương tác trc ti-p vi ngư&i ñEc m0t cách nhanh chóng và dJ dàng hơn rt nhiu là sK dLng thu6n
JavaScript.
Nhưng n-u bAn là ngư&i mi làm quen vi jQuery bAn sM thy không bi-t ph>i b?t ñ6u tO ñâu vì
jQuery cũng giQng như bt c/ thư vin nào khác cũng có rt nhiu functions. Cho dù bAn có ñEc ph6n
tài liu hưng dRn sK dLng c#a jQuery thì bAn vRn thy rt ph/c tAp và khó hiu. Nhưng bAn yên tâm
m0t ñiu là jQuery có cu trúc rt mAch lAc và theo h thQng. Cách vi-t code c#a jQuery ñư;c vay
mư;n tO các nguTn mà các web designer ña ph6n ñã bi-t như HTML và CSS. N-u tO trưc ñ-n nay
bAn ch5 là Designer ch/ không ph>i coder, bAn cũng có th dJ dàng hEc jQuery vì ki-n th/c v CSS
giúp bAn rt nhiu khi b?t ñ6u vi jQuery.
NhYn thy jQuery còn khá mi mZ vi nhiu bAn và nó cũng là thư vin ñư;c ñông ñ>o ngư&i sK
dLng. Izwebz gii thiu ñ-n các bAn loAt bài v jQuery. Trong loAt bài này chúng ta sM tìm hiu v
jQuery và các tính năng c#a nó. Trưc h-t bAn nên bi-t jQuery có th làm ñư;c nhCng gì.

Nhng gì Jquery có th làm
Hưng ti các thành phn trong tài liu HTML. N-u không sK dLng thư vin JavaScript này, bAn
ph>i vi-t rt nhiu dòng code mi có th ñAt ñư;c mLc tiêu là di chuyn trong cu trúc cây (hay còn
gEi là DOM = Document Object Model) c#a m0t tài liu HTML và chEn ra các thành ph6n liên quan.
Jquery cho phép bAn chEn bt c/ thành ph6n nào c#a tài liu ñ “vEc” m0t cách dJ dàng như sK dLng
CSS.
Thay ñ#i giao din c%a m&t trang web. CSS là công cL rt mAnh ñ ñdnh dAng m0t trang web
nhưng nó có m0t như;c ñim là không ph>i tt c> các trình duyt ñu hin thd giQng nhau. Cho nên
jQuery ra ñ&i ñ lp che trQng này, vì vYy các bAn có th sK dLng nó ñ giúp trang web có th hin thd
tQt trên h6u h-t các trình duyt. Hơn nCa jQuery cũng có th thay ñfi class hogc nhCng ñdnh dAng
CSS ñã ñư;c áp dLng lên bt c/ thành ph6n nào c#a tài liu HTML ngay c> khi trang web ñó ñã
ñư;c trình duyt load thành công.
Thay ñ#i n&i dung c%a tài liu. Jquery không ph>i ch5 có th thay ñfi b ngoài c#a trang web, nó
cũng có th thay ñfi n0i dung c#a chính tài liu ñó ch5 vi vài dòng code. Nó có th thêm hogc bt n0i
dung trên trang, hình >nh có th ñư;c thêm vào hogc ñfi sang hình khác, danh sách có th ñư;c s?p
x-p lAi hogc thYm chí c> cu trúc HTML c#a m0t trang web cũng có th ñư;c vi-t lAi và mI r0ng. Tt
c> nhCng ñiu này bAn hoàn toàn có th làm ñư;c nh& s giúp ñi c#a API (Application Programming
Interface = Giao din lYp trình /ng dLng).
Tương tác vi ngư+i dùng. Cho dù công cL bAn dùng có mAnh mM ñ-n my, nhưng n-u bAn không
có quyn quy-t ñdnh khi nào nó ñư;c sK dLng thì công cL ñó cũng coi như bl. Vi thư vin javaScript
như jQuery, nó cho bAn nhiu cách ñ tương tác vi ngư&i dùng ví dL như khi ngư&i dùng nhp
chu0t vào ñư&ng link thì sM có gì x>y ra. Nhưng cái hay c#a nó là không làm cho code HTML c#a bAn

rQi tung lên chính là nh& các Event Handlers. Hơn nCa Event Handler API sM b>o ñ>m rnng trang web
c#a bAn tương thích h6u h-t vi các trình duyt, ñiu này ñã và ñang làm ñau ñ6u rt nhiu các web
designer.
T.o hiu /ng ñ&ng cho nhng thay ñ#i c%a tài liu. ð tương tác tQt vi ngư&i dùng, các web
designer ph>i cho ngư&i dùng thy ñư;c hiu /ng gì sM x>y ra khi hE làm m0t tác vL nào ñó. Jquery
cho phép bAn sK dLng rt nhiu hiu /ng ñ0ng như m& d6n, chAy dEc chAy ngang v.v.. và n-u vRn
chưa ñ#, nó còn cho phép bAn t tAo ra các hiu /ng c#a riêng mình.
L0y thông tin t2 server mà không cn t5i l.i trang web. ðây chính là công ngh ngày càng trI nên
phf bi-n Asynchronous JavaScript And XML (AJAX), nó giúp ngư&i thi-t k- web tAo ra nhCng trang
web tương tác cc tQt và nhiu tính năng. Thư vin jQuery loAi bl s ph/c tAp c#a trình duyt trong
quá trình này và cho phép ngư&i phát trin web có th tYp trung vào các tính năng ñ6u cuQi.
ðơn gi5n hoá các tác v7 javaScript. Ngoài nhCng tính năng như ñã nêu I trên, jQuery còn cho
phép bAn vi-t code javaScript ñơn gi>n hơn nhiu so vi cách truyn thQng như là các vòng lgp và
ñiu khin m>ng.

T.i sao jQuery làm vic t;t
Ngư&i dùng ngày càng quan tâm hơn ñ-n Dynamic HTML, ñó cũng là nn móng cho s ra ñ&i c#a
nhCng javaScript Frameworks. Có frameworks thì ch5 tYp trung vào m0t vài tính năng vOa nên I trên,
có cái thì ráng bao gTm tt c> nhCng hiu /ng, tYp tính và nhTi nhét vào m0t package. ð ñ>m b>o là
m0t thư vin “nhanh gEn nh!” nhưng vRn “ngon bf rZ” vi các tính năng ñã nêu I trên, jQuery sK
dLng nhCng chi-n lư;c sau:
T<n d7ng ki=n th/c v> CSS. Các jQuery Selector hoAt ñ0ng y chang như CSS Selector vi cùng
cu trúc và cú pháp. Chính vì th- thư vin jQuery là cKa ngõ cho các web designer muQn thêm nhiu
tính năng hơn nCa cho trang web c#a mình. BIi vì ñiu kin tiên quy-t ñ trI thành m0t web designer
chuyên nghip là kh> năng sK dLng CSS thu6n thLc. Vi ki-n th/c có stn v CSS, bAn sM có s khIi
ñ6u thuYn l;i vi jQuery.
H@ trA Plugin. ð tránh bd rơi vào trAng thái quá t>i tính năng, jQuery cho phép ngư&i dùng tAo và sK
dLng Plugin n-u c6n. Cách tAo m0t plugin mi cũng khá ñơn gi>n và ñư;c hưng dRn cL th, chính
vì th- c0ng ñTng sK dLng jQuery ñã tAo ra m0t loAt nhCng plugin ñ6y tính sáng tAo và hCu dLng.
Xoá nhoà s khác bit giCa trình duyt. M0t th/c t- tTn tAi là mei m0t h thQng trình duyt lAi có m0t
kiu riêng ñ ñEc trang web. DRn ñ-n m0t ñiu làm ñau ñ6u các web designer là làm th- nào ñ cho
trang web có th hin thd tQt trên mEi trình duyt. Cho nên ñôi khi ngư&i ta ph>i làm hun m0t ph6n
code ph/c tAp ñ ñ>m b>o rnng trang web c#a hE ñư;c hin thd g6n như tương ñTng I các trình
duyt phf bi-n. Jquery giúp bAn thêm m0t lp b>o v cho s khác bit c#a trình duyt và giúp quá
trình này diJn ra dJ dàng hơn rt nhiu.

Luôn làm vic vi Set. Ví dL khi chúng ta yêu c6u jQuery tìm tt c> các thành ph6n có class là
delete và vn chúng ñi. Chúng ta không c6n ph>i loop qua tOng thành ph6n ñư;c tr> v. Thay vào ñó,
nhCng phương pháp như là hide() ñư;c thi-t k- ra ñ làm vic vi set thay vì tOng thành ph6n ñơn
lZ. Kx thuYt này ñư;c gEi là vòng lgp vn, ñiu ñó có nghĩa là chúng ta không ph>i t vi-t code ñ loop
nCa mà nó vRn ñư;c thc thi, chính vì th- code c#a chúng ta sM ng?n hơn rt nhiu.
Cho phép nhi>u tác v7 diDn ra trên cùng m&t dòng. ð tránh ph>i sK dLng nhCng bi-n tAm hogc
các tác vL lgp tQn th&i gian, jQuery cho phép bAn sK dLng kiu lYp trình ñư;c gEi là Chaining cho h6u
h-t các method c#a nó. ðiu ñó có nghĩa là k-t qu> c#a các tác vL ñư;c ti-n hành trên m0t thành
ph6n chính là thành ph6n ñó, nó stn sàng cho tác vL ti-p theo ñư;c áp dLng lên nó.
NhCng chi-n lư;c ñư;c nêu I trên giúp kích thưc c#a jQuery rt nhl bé ch5 kho>ng trên dưi 20Kb
dAng nén. Nhưng vRn ñ>m b>o cung cp cho chúng ta nhCng kx thuYt ñ giúp code trên trang nhl
gEn và mAch lAc.
Jquery sI dĩ trI nên phf bi-n là do cách sK dLng ñơn gi>n và bên cAnh ñó còn có m0t c0ng ñTng sK
dLng mAnh mM vRn ngày ngày phát trin thêm Plugin và hoàn thin nhCng tính năng trEng tâm c#a
jQuery. Cho dù thc t- là vYy, nhưng jQuery lAi là thư vin javaScript hoàn toàn miJn phí cho mEi
ngư&i sK dLng. Tt nhiên nó ñư;c b>o v bIi luYt GNU Public License và MIT License, nhưng bAn
c/ yên tâm là bAn có th sK dLng nó trong h6u h-t các trư&ng h;p k c> thương mAi lRn cá nhân.

