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

Presentation on jQuery focusing on Selectors, Caching, and Traversing

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