30
Getting your feet wet with jQuery Benjamin Sterling Twitter: bmsterling | AIM: thekenzoco | Skype: benjamin.sterling

getting your feet wet with jquery

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: getting your feet wet with jquery

Getting your feet wet with jQuery

Benjamin Sterling

Twitter: bmsterling | AIM: thekenzoco | Skype: benjamin.sterling

Page 2: getting your feet wet with jquery

Why jQuery?

•DOM scripting without thinking•Cross browser support•A philosophy that makes sense•Small footprint•A great community•Everyone is doing it

Page 3: getting your feet wet with jquery

Our Focus•Selecting•Caching•Traversing

Page 4: getting your feet wet with jquery

Selectors

Page 5: getting your feet wet with jquery

Basic SelectorsDo you know what CSS is? Well, that is all there is to basic selectors.

Examples:•$('.ClassName')•$('#ID')•$('HtmlElement')

Page 6: getting your feet wet with jquery

Hierarchy Selectors•ancestor descendant •parent > child•prev + next•prev ~ siblings

Page 7: getting your feet wet with jquery

Custom Selectors:first:last:not(selector) :even:odd:eq(index):gt(index) :lt(index):header:animated:contains(text):empty

:input:text:password:radio:checkbox:submit:image:reset:button:file

:has(selector):parent:hidden:visible:nth-child(N):first-child:last-child:only-child:enabled:disabled:checked:selected

Page 8: getting your feet wet with jquery

Caching

Page 9: getting your feet wet with jquery

Caching•Local storage of remote data designed to reduce network transfers.•Saving information learned during a previous operation to be used in future operations.

Page 10: getting your feet wet with jquery

Cachingvar jqMainMenu = $('#mainmenu');

var $mainMenu = $('#mainmenu');

Page 11: getting your feet wet with jquery

Traversing

Page 12: getting your feet wet with jquery

Traversing•22 built in traversing methods•The ones we'll focus on

•.eq()•.is()•.hasClass()•.not()•.children()•.parent()•.parents()•.siblings()•.next()/.prev()•.end()

Page 13: getting your feet wet with jquery

.eq(N)<ul id="nav"> <li><a href="#">Link 1</a></li> <li><a href="#">Link 2</a></li> <li><a href="#">Link 3</a></li> <li> <a href="#">Link 4</a> <ul> <li><a href="#">Sub Link 1</a></li> <li><a href="#">Sub Link 2</a></li> </ul> </li> <li> <a href="#">Link 3</a> <ul> <li><a href="#">Sub Link 3</a></li> <li><a href="#">Sub Link 4</a></li> </ul> </li></ul>

$('#nav a').eq(1); returns <a href="#">Link 2</a>

$('#nav a').eq(4) returns <a href="#">Sub Link 1</a>

Page 14: getting your feet wet with jquery

.is(expr)<ul id="nav"> <li><a href="#">Link 1</a></li> <li><a href="#">Link 2</a></li> <li><a href="#">Link 3</a></li> <li> <a href="#">Link 4</a> <ul> <li><a href="#" class="active">Sub Link 1</a></li> <li><a href="#">Sub Link 2</a></li> </ul> </li> <li> <a href="#">Link 3</a> <ul> <li><a href="#">Sub Link 3</a></li> <li><a href="#">Sub Link 4</a></li> </ul> </li></ul>

$('#nav a').eq(1).is('a'); returns true

$('#nav a').eq(1).is(':odd'); returns false

$('#nav a').eq(1).is(':only-child'); returns false

$('#nav a').eq(4).is('.active') returns true

Page 15: getting your feet wet with jquery

.hasClass(expr)<ul id="nav"> <li><a href="#">Link 1</a></li> <li><a href="#">Link 2</a></li> <li><a href="#">Link 3</a></li> <li> <a href="#">Link 4</a> <ul> <li><a href="#" class="active">Sub Link 1</a></li> <li><a href="#">Sub Link 2</a></li> </ul> </li> <li> <a href="#">Link 3</a> <ul> <li><a href="#">Sub Link 3</a></li> <li><a href="#">Sub Link 4</a></li> </ul> </li></ul>

$('#nav a').eq(1).hasClass('active'); returns false

$('#nav a').eq(4).hasClass('active') returns true

Page 16: getting your feet wet with jquery

.not(expr)<ul id="nav"> <li><a href="#">Link 1</a></li> <li><a href="#">Link 2</a></li> <li><a href="#">Link 3</a></li> <li> <a href="#">Link 4</a> <ul> <li><a href="#" class="active">Sub Link 1</a></li> <li><a href="#">Sub Link 2</a></li> </ul> </li> <li> <a href="#">Link 3</a> <ul> <li><a href="#">Sub Link 3</a></li> <li><a href="#">Sub Link 4</a></li> </ul> </li></ul>

$('#nav a').eq(1).not('.active'); returns true

$('#nav a').eq(4).not('a') returns false

Page 17: getting your feet wet with jquery

My Family DOM

Page 18: getting your feet wet with jquery

.children(expr)<ul id="nav"> <li><a href="#">Link 1</a></li> <li><a href="#">Link 2</a></li> <li><a href="#">Link 3</a></li> <li> <a href="#">Link 4</a> <ul> <li><a href="#" class="active">Sub Link 1</a></li> <li><a href="#">Sub Link 2</a></li> </ul> </li> <li> <a href="#">Link 3</a> <ul> <li><a href="#">Sub Link 3</a></li> <li><a href="#">Sub Link 4</a></li> </ul> </li></ul>

$('#nav').children() returns ????

$('#nav').children('li') returns ????

Page 19: getting your feet wet with jquery

.children(expr)<ul id="nav"> <li><a href="#">Link 1</a></li> <li><a href="#">Link 2</a></li> <li><a href="#">Link 3</a></li> <li> <a href="#">Link 4</a> <ul> <li><a href="#" class="active">Sub Link 1</a></li> <li><a href="#">Sub Link 2</a></li> </ul> </li> <li> <a href="#">Link 3</a> <ul> <li><a href="#">Sub Link 3</a></li> <li><a href="#">Sub Link 4</a></li> </ul> </li></ul>

$('#nav').children() returns five child LI

$('#nav').children('li') returns five child LI

Page 20: getting your feet wet with jquery

.parent() vs .parents()

Page 21: getting your feet wet with jquery

.parent(expr)<ul id="nav"> <li><a href="#">Link 1</a></li> <li><a href="#">Link 2</a></li> <li><a href="#">Link 3</a></li> <li> <a href="#">Link 4</a> <ul> <li><a href="#" class="active">Sub Link 1</a></li> <li><a href="#">Sub Link 2</a></li> </ul> </li> <li> <a href="#">Link 3</a> <ul> <li><a href="#">Sub Link 3</a></li> <li><a href="#">Sub Link 4</a></li> </ul> </li></ul>

$('.active').parent() returns LI

$('.active').parent().parent() returns UL

$('.active').parent().parent().parent() returns LI

$('.active').parent().parent().parent().parent() returns UL#nav

Page 22: getting your feet wet with jquery

.parents(expr)<ul id="nav"> <li><a href="#">Link 1</a></li> <li><a href="#">Link 2</a></li> <li><a href="#">Link 3</a></li> <li> <a href="#">Link 4</a> <ul> <li><a href="#" class="active">Sub Link 1</a></li> <li><a href="#">Sub Link 2</a></li> </ul> </li> <li> <a href="#">Link 3</a> <ul> <li><a href="#">Sub Link 3</a></li> <li><a href="#">Sub Link 4</a></li> </ul> </li></ul>

$('.active').parents() returns LI, UL, LI, UL#nav, BODY, HTML

$('.active').parents('#nav') returns UL#nav

Page 23: getting your feet wet with jquery

.siblings()

Page 24: getting your feet wet with jquery

.siblings(expr)<ul id="nav"> <li><a href="#">Link 1</a></li> <li><a href="#">Link 2</a></li> <li><a href="#">Link 3</a></li> <li> <a href="#">Link 4</a> <ul> <li><a href="#" class="active">Sub Link 1</a></li> <li><a href="#">Sub Link 2</a></li> </ul> </li> <li> <a href="#">Link 3</a> <ul> <li><a href="#">Sub Link 3</a></li> <li><a href="#">Sub Link 4</a></li> </ul> </li></ul>

$('li:eq(2)').siblings() returns 4 LI

$('li:eq(2)').siblings(':not(:has(a.active))') returns 3

$('li:eq(2)').siblings(':not(:has(a.active))') .andSelf() returns 4 LI (includes the third LI also)

Page 25: getting your feet wet with jquery

.prev() / .next() / .end()

Page 26: getting your feet wet with jquery

.prev() / .next() / .end()<ul id="nav">

<li><a href="#">Link 1</a></li> <li><a href="#">Link 2</a></li> <li><a href="#">Link 3</a></li> <li> <a href="#">Link 4</a> <ul> <li><a href="#" class="active">Sub Link 1</a></li> <li><a href="#">Sub Link 2</a></li> </ul> </li> <li> <a href="#">Link 3</a> <ul> <li><a href="#">Sub Link 3</a></li> <li><a href="#">Sub Link 4</a></li> </ul> </li></ul>

$('li:eq(2)').next() returns forth LI under #nav

$('li:eq(2)').prev() returns second LI under #nav

$('li:eq(2)').next().end().prev() returns second LI under #nav

Page 27: getting your feet wet with jquery

closing

Page 28: getting your feet wet with jquery

http://docs.jquery.com/

Page 29: getting your feet wet with jquery

http://remysharp.com/jquery-api/

Page 30: getting your feet wet with jquery

Questions?

Twitter: bmsterlingSkype: benjamin.sterlingAIM: thekenzocoEmail: [email protected]: http://benjaminsterling.com