-
-
- removeProp(String)
- prop(String)
- prop(String, String, Number, Boolean)
prop(Map)
prop(String, Function) - val()
- val(String)
val(Function) - html()
- html(String)
html(Function) - toggleClass(String)
toggleClass(String, Boolean)
toggleClass([ Boolean ])
toggleClass(Function, [ Boolean ]) - removeClass([ String ])
removeClass(Function) - hasClass(String)
- removeAttr(String)
- attr(String)
- attr(String, String,Number)
attr(Map)
attr(String, Function) - addClass(String)
addClass(Function)
- removeProp(String)
-
- jQuery.cssHooks()
- outerWidth([ Boolean ])
- outerHeight([ Boolean ])
- innerWidth()
- innerHeight()
- width()
- width(String, Number)
width(Function) - height()
- height(String, Number)
height(Function) - scrollLeft()
- scrollLeft(Number)
- scrollTop()
- scrollTop(Number)
- position()
- offset()
- offset(Object)
offset(Function) - css(String)
- css(String, String, Number)
css(String, Function)
css(Map) - toggleClass(String)
toggleClass(String, Boolean)
toggleClass([ Boolean ])
toggleClass(Function, [ Boolean ]) - removeClass([ String ])
removeClass(Function) - hasClass(String)
- addClass(String)
addClass(Function)
- jQuery.cssHooks()
-
- jQuery.hasData(Element)
- jQuery.removeData(Element, [ String ])
- jQuery.data(Element, String, Object)
- jQuery.data(Element, String)
jQuery.data(Element) - jQuery.dequeue(Element, [ String ])
- jQuery.queue(Element, [ String ])
- jQuery.queue(Element, String, Array)
jQuery.queue(Element, String, Function) - clearQueue([ String ])
- removeData([ String ])
removeData([ Array,String ]) - data(String, Object)
data(Object) - data(String)
data() - dequeue([ String ])
- queue([ String ])
- queue([ String ], Array)
queue([ String ], Function)
- jQuery.hasData(Element)
-
- deferred.progress(Function)
- deferred.notifyWith(Object, [ Object ])
- deferred.notify(Object)
- deferred.state()
- deferred.pipe([ Function ], [ Function ])
deferred.pipe([ Function ], [ Function ], [ Function ]) - deferred.always(Function, [ Function ])
- promise([ String ], [ Object ])
- deferred.promise([ Object ])
- jQuery.when(Deferred)
- deferred.resolveWith(Object, [ Array ])
- deferred.rejectWith(Object, [ Array ])
- deferred.fail(Function, [ Function ])
- deferred.done(Function, [ Function ])
- deferred.then(Function, Function)
deferred.then(Function, Function, [ Function ]) - deferred.reject(Object)
- deferred.isRejected()
- deferred.isResolved()
- deferred.resolve(Object)
- deferred.progress(Function)
-
-
- jQuery.fx.interval()
- delay(Integer, [ String ])
- jQuery.fx.off()
- clearQueue([ String ])
- dequeue([ String ])
- queue([ String ])
- queue([ String ], Array)
queue([ String ], Function) - stop([ Boolean ], [ Boolean ])
stop([ String ], [ Boolean ], [ Boolean ]) - animate(Map, [ String,Number ], [ String ], [ Function ])
animate(Map, Map)
- jQuery.fx.interval()
-
- fadeToggle([ String,Number ], [ String ], [ Function ])
- fadeTo(String,Number, Number, [ Callback ])
fadeTo(String,Number, Number, [ String ], [ Callback ]) - fadeOut([ String,Number ], [ Callback ])
fadeOut([ String,Number ], [ String ], [ Callback ]) - fadeIn([ String,Number ], [ Callback ])
fadeIn([ String,Number ], [ String ], [ Callback ])
- fadeToggle([ String,Number ], [ String ], [ Function ])
- fadeToggle([ String,Number ], [ String ], [ Function ])
-
-
- off(String, [ String ], [ Function ])
off(Map, [ String ]) - on(String, [ String ], [ Anything ], Function)
on(Map, [ String ], [ Anything ]) - undelegate()
undelegate(String, String)
undelegate(String, String, Function)
undelegate(String, Map)
undelegate(String) - delegate(String, String, Function)
delegate(String, String, Object, Function)
delegate(String, Map) - jQuery.proxy(Function, Object)
jQuery.proxy(Object, String) - die()
- die(String, [ String ])
die(Map) - live(String, Function)
live(String, Object, Function)
live(Object) - triggerHandler(String, Array)
- trigger(String, Object)
trigger(Event) - one(String, [ Object ], Function)
one(String, [ String ], [ Anything ], Function)
one(Map, [ String ], [ Anything ]) - unbind([ String ], [ Function ])
unbind(String, Boolean)
unbind(Object) - bind(String, [ Object ], Function)
bind(String, [ Object ], Boolean)
bind(Object)
- off(String, [ String ], [ Function ])
-
- event.namespace()
- event.isImmediatePropagationStopped()
- event.stopImmediatePropagation()
- event.isPropagationStopped()
- event.stopPropagation()
- event.isDefaultPrevented()
- event.preventDefault()
- event.timeStamp()
- event.result()
- event.which()
- event.pageY()
- event.pageX()
- event.currentTarget()
- event.relatedTarget()
- event.data()
- event.target()
- event.type()
- event.namespace()
-
- toggle(Function, Function, [ Function ])
- focusout(Function)
focusout([ Object ], Function) - focusin(Function)
focusin([ Object ], Function) - mousemove(Function)
mousemove([ Object ], Function)
mousemove() - hover(Function, Function)
- hover(Function)
- mouseleave(Function)
mouseleave([ Object ], Function)
mouseleave() - mouseenter(Function)
mouseenter([ Object ], Function)
mouseenter() - mouseout(Function)
mouseout([ Object ], Function)
mouseout() - mouseover(Function)
mouseover([ Object ], Function)
mouseover() - dblclick(Function)
dblclick([ Object ], Function)
dblclick() - click(Function)
click([ Object ], Function)
click() - mouseup(Function)
mouseup([ Object ], Function)
mouseup() - mousedown(Function)
mousedown([ Object ], Function)
mousedown()
- toggle(Function, Function, [ Function ])
- on(String, [ String ], [ Anything ], Function)
on(Map, [ String ], [ Anything ])
-
- submit(Function)
submit([ Object ], Function)
submit() - select(Function)
select([ Object ], Function)
select() - change(Function)
change([ Object ], Function)
change() - blur(Function)
blur([ Object ], Function)
blur() - focus(Function)
focus([ Object ], Function)
focus() - serializeArray()
- serialize()
- jQuery.param(Array, Object)
jQuery.param(Array, Object, Boolean) - val()
- val(String)
val(Function)
- submit(Function)
-
-
-
- prependTo(Selector, Element, jQuery)
- prepend(String, Element, jQuery, [ String, Element, jQuery ])
prepend(Function) - appendTo(Selector, Element, jQuery)
- append(String, Element, jQuery, [ String, Element, Array, jQuery ])
append(Function) - text()
- text(String)
text(Function) - html()
- html(String)
html(Function)
- prependTo(Selector, Element, jQuery)
-
- outerWidth([ Boolean ])
- outerHeight([ Boolean ])
- innerWidth()
- innerHeight()
- width()
- width(String, Number)
width(Function) - height()
- height(String, Number)
height(Function) - scrollLeft()
- scrollLeft(Number)
- scrollTop()
- scrollTop(Number)
- position()
- offset()
- offset(Object)
offset(Function) - css(String)
- css(String, String, Number)
css(String, Function)
css(Map)
- outerWidth([ Boolean ])
-
-
-
-
- parentsUntil([ Selector ], [ Selector ])
parentsUntil([ Element ], [ Selector ]) - prevUntil([ Selector ], [ Selector ])
prevUntil([ Element ], [ Selector ]) - nextUntil([ Selector ], [ Selector ])
nextUntil([ Element ], [ Selector ]) - siblings([ Selector ])
- prevAll([ Selector ])
- prev([ Selector ])
- parents([ Selector ])
- parent([ Selector ])
- offsetParent()
- nextAll([ String ])
- next([ Selector ])
- find(Selector)
find(Object)
find(Element) - closest(Selector)
closest(Selector, [ Element ])
closest(jQuery)
closest(Element) - closest(Array, [ Element ])
- children([ Selector ])
- parentsUntil([ Selector ], [ Selector ])
- each(Function)
-
- jQuery.isNumeric(Object)
- jQuery.now()
- jQuery.parseXML(String)
- jQuery.type(Object)
- jQuery.isWindow(Object)
- jQuery.parseJSON(String)
- jQuery.proxy(Function, Object)
jQuery.proxy(Object, String) - jQuery.contains(Element, Element)
- jQuery.noop()
- jQuery.globalEval(String)
- jQuery.isXMLDoc(Element)
- jQuery.removeData(Element, [ String ])
- jQuery.data(Element, String, Object)
- jQuery.data(Element, String)
jQuery.data(Element) - jQuery.dequeue(Element, [ String ])
- jQuery.queue(Element, [ String ])
- jQuery.queue(Element, String, Array)
jQuery.queue(Element, String, Function) - clearQueue([ String ])
- jQuery.isEmptyObject(Object)
- jQuery.isPlainObject(Object)
- dequeue([ String ])
- queue([ String ])
- queue([ String ], Array)
queue([ String ], Function) - jQuery.browser()
- jQuery.browser.version()
- jQuery.trim(String)
- jQuery.isFunction(Object)
- jQuery.isArray(Object)
- jQuery.unique(Array)
- jQuery.merge(Array, Array)
- jQuery.inArray(Any, Array, [ Number ])
- jQuery.map(Array, Function)
jQuery.map(Array,Object, Function) - jQuery.makeArray(Object)
- jQuery.grep(Array, Function, [ Boolean ])
- jQuery.extend(Object, [ Object ], [ Object ])
jQuery.extend([ Boolean ], Object, Object, [ Object ]) - jQuery.each(Object, Function)
- jQuery.boxModel()
- jQuery.support()
- jQuery.isNumeric(Object)
-
-
- toggle(Function, Function, [ Function ])
- event.stopPropagation()
- event.preventDefault()
- event.target()
- event.type()
- each(Function)
- pushStack(Array)
pushStack(Array, String, Array) - keydown(Function)
keydown([ Object ], Function)
keydown() - index()
index(Selector)
index(Element, jQuery) - get([ Number ])
- size()
- jQuery.noConflict([ Boolean ])
- :selected
- :checked
- :disabled
- :enabled
- :file
- :button
- :reset
- :image
- :submit
- :checkbox
- :radio
- :password
- :text
- :input
- [attribute|="value"]
- [attribute~="value"]
- [attributeFilter1][attributeFilter2][attributeFilterN]
- [attribute*="value"]
- [attribute$="value"]
- [attribute^="value"]
- [attribute!="value"]
- [attribute="value"]
- [attribute]
- :visible
- :hidden
- :parent
- :empty
- :lt(index)
- :gt(index)
- :eq(index)
- :odd
- :even
- :not(selector)
- :last
- :first
- prev ~ siblings
- prev + next
- parent > child
- ancestor descendant
- selector1, selector2, selectorN
- *
- .class
- element
- #id
- scroll(Function)
scroll([ Object ], Function)
scroll() - resize(Function)
resize([ Object ], Function)
resize() - keyup(Function)
keyup([ Object ], Function)
keyup() - keypress(Function)
keypress([ Object ], Function)
keypress() - submit(Function)
submit([ Object ], Function)
submit() - select(Function)
select([ Object ], Function)
select() - change(Function)
change([ Object ], Function)
change() - blur(Function)
blur([ Object ], Function)
blur() - focus(Function)
focus([ Object ], Function)
focus() - mousemove(Function)
mousemove([ Object ], Function)
mousemove() - hover(Function, Function)
- hover(Function)
- mouseleave(Function)
mouseleave([ Object ], Function)
mouseleave() - mouseenter(Function)
mouseenter([ Object ], Function)
mouseenter() - mouseout(Function)
mouseout([ Object ], Function)
mouseout() - mouseover(Function)
mouseover([ Object ], Function)
mouseover() - dblclick(Function)
dblclick([ Object ], Function)
dblclick() - click(Function)
click([ Object ], Function)
click() - mouseup(Function)
mouseup([ Object ], Function)
mouseup() - mousedown(Function)
mousedown([ Object ], Function)
mousedown() - error(Function)
error([ Object ], Function) - unload(Function)
unload([ Object ], Function) - load(Function)
load([ Object ], Function) - ready(Function)
- jQuery.browser()
- jQuery.browser.version()
- trigger(String, Object)
trigger(Event) - ajaxComplete(Function)
- serialize()
- ajaxSuccess(Function)
- ajaxStop(Function)
- ajaxStart(Function)
- ajaxSend(Function)
- ajaxError(Function)
- unbind([ String ], [ Function ])
unbind(String, Boolean)
unbind(Object) - bind(String, [ Object ], Function)
bind(String, [ Object ], Boolean)
bind(Object) - jQuery(selector, [ Element, jQuery ])
jQuery(Element)
jQuery(Object)
jQuery(Array)
jQuery(Object)
jQuery() - jQuery(String, [ document ])
jQuery(String, Object) - jQuery(Function)
- end()
- siblings([ Selector ])
- animate(Map, [ String,Number ], [ String ], [ Function ])
animate(Map, Map) - prev([ Selector ])
- fadeTo(String,Number, Number, [ Callback ])
fadeTo(String,Number, Number, [ String ], [ Callback ]) - fadeOut([ String,Number ], [ Callback ])
fadeOut([ String,Number ], [ String ], [ Callback ]) - parents([ Selector ])
- fadeIn([ String,Number ], [ Callback ])
fadeIn([ String,Number ], [ String ], [ Callback ]) - parent([ Selector ])
- slideToggle([ String,Number ], [ Callback ])
slideToggle([ String,Number ], [ String ], [ Callback ]) - jQuery.post(String, [ Map, String ], [ Function ], [ String ])
- slideUp([ String,Number ], [ Callback ])
slideUp([ String,Number ], [ String ], [ Callback ]) - next([ Selector ])
- slideDown([ String,Number ], [ Callback ])
slideDown([ String,Number ], [ String ], [ Callback ]) - find(Selector)
find(Object)
find(Element) - jQuery.getScript(String, [ Function ])
- jQuery.getJSON(String, [ Map ], [ Function ])
- jQuery.get(String, [ Map, String ], [ Function ], [ String ])
- load(String, Map, String, [ Function ])
- jQuery.ajax(String, [ Map ])
jQuery.ajax(Map) - length()
- children([ Selector ])
- add(Selector)
add(Elements)
add(HTML)
add(jQuery object )
add(Selector, Element) - not(Selector)
not(Elements)
not(Function) - toggle([ String,Number ], [ Callback ])
toggle([ String,Number ], [ String ], [ Callback ])
toggle(Boolean) - hide()
hide(String,Number, [ Callback ])
hide([ String,Number ], [ String ], [ Callback ]) - width()
- width(String, Number)
width(Function) - height()
- height(String, Number)
height(Function) - show()
show(String,Number, [ Callback ])
show([ String,Number ], [ String ], [ Callback ]) - jQuery.trim(String)
- jQuery.merge(Array, Array)
- jQuery.map(Array, Function)
jQuery.map(Array,Object, Function) - jQuery.grep(Array, Function, [ Boolean ])
- jQuery.extend(Object, [ Object ], [ Object ])
jQuery.extend([ Boolean ], Object, Object, [ Object ]) - jQuery.each(Object, Function)
- jQuery.boxModel()
- css(String)
- css(String, String, Number)
css(String, Function)
css(Map) - clone([ Boolean ])
clone([ Boolean ], [ Boolean ]) - remove([ String ])
- empty()
- wrap(String, Selector, Element, jQuery)
wrap(Function) - insertBefore(Selector, Element, jQuery)
- before(String, Element, jQuery, [ String, Element, Array, jQuery ])
before(Function) - insertAfter(Selector, Element, jQuery)
- after(String, Element, jQuery, [ String, Element, Array, jQuery ])
after(Function) - prependTo(Selector, Element, jQuery)
- prepend(String, Element, jQuery, [ String, Element, jQuery ])
prepend(Function) - appendTo(Selector, Element, jQuery)
- append(String, Element, jQuery, [ String, Element, Array, jQuery ])
append(Function) - val()
- val(String)
val(Function) - text()
- text(String)
text(Function) - html()
- html(String)
html(Function) - is(Selector)
is(Function)
is(Object)
is(Element) - filter(Selector)
filter(Function)
filter(Element)
filter(Object) - toggleClass(String)
toggleClass(String, Boolean)
toggleClass([ Boolean ])
toggleClass(Function, [ Boolean ]) - removeClass([ String ])
removeClass(Function) - removeAttr(String)
- attr(String)
- attr(String, String,Number)
attr(Map)
attr(String, Function) - addClass(String)
addClass(Function)
- toggle(Function, Function, [ Function ])
-
- :animated
- :header
- dequeue([ String ])
- queue([ String ])
- queue([ String ], Array)
queue([ String ], Function) - triggerHandler(String, Array)
- serializeArray()
- stop([ Boolean ], [ Boolean ])
stop([ String ], [ Boolean ], [ Boolean ]) - andSelf()
- prevAll([ Selector ])
- nextAll([ String ])
- contents()
- jQuery.param(Array, Object)
jQuery.param(Array, Object, Boolean) - jQuery.isFunction(Object)
- jQuery.inArray(Any, Array, [ Number ])
- jQuery.makeArray(Object)
- position()
- offset()
- offset(Object)
offset(Function) - replaceAll(Selector)
- replaceWith(String, Element, jQuery)
replaceWith(Function) - wrapInner(String)
wrapInner(Function) - wrapAll(String, Selector, Element, jQuery)
- map(Function)
- hasClass(String)
-
- event.isImmediatePropagationStopped()
- event.stopImmediatePropagation()
- event.isPropagationStopped()
- event.isDefaultPrevented()
- event.result()
- event.currentTarget()
- jQuery.fx.off()
- pushStack(Array)
pushStack(Array, String, Array) - jQuery.dequeue(Element, [ String ])
- jQuery.queue(Element, [ String ])
- jQuery.queue(Element, String, Array)
jQuery.queue(Element, String, Function) - die()
- die(String, [ String ])
die(Map) - live(String, Function)
live(String, Object, Function)
live(Object) - closest(Selector)
closest(Selector, [ Element ])
closest(jQuery)
closest(Element) - closest(Array, [ Element ])
- context()
- toggle([ String,Number ], [ Callback ])
toggle([ String,Number ], [ String ], [ Callback ])
toggle(Boolean) - jQuery.isArray(Object)
- jQuery.support()
- toggleClass(String)
toggleClass(String, Boolean)
toggleClass([ Boolean ])
toggleClass(Function, [ Boolean ])
- event.isImmediatePropagationStopped()
-
- jQuery.proxy(Function, Object)
jQuery.proxy(Object, String) - focusout(Function)
focusout([ Object ], Function) - focusin(Function)
focusin([ Object ], Function) - has(String)
has(Element) - jQuery.contains(Element, Element)
- jQuery.noop()
- delay(Integer, [ String ])
- parentsUntil([ Selector ], [ Selector ])
parentsUntil([ Element ], [ Selector ]) - prevUntil([ Selector ], [ Selector ])
prevUntil([ Element ], [ Selector ]) - nextUntil([ Selector ], [ Selector ])
nextUntil([ Element ], [ Selector ]) - jQuery.data(Element, String, Object)
- jQuery.data(Element, String)
jQuery.data(Element) - clearQueue([ String ])
- toArray()
- jQuery.isEmptyObject(Object)
- jQuery.isPlainObject(Object)
- index()
index(Selector)
index(Element, jQuery) - data(String, Object)
data(Object) - data(String)
data() - bind(String, [ Object ], Function)
bind(String, [ Object ], Boolean)
bind(Object) - first()
- last()
- jQuery(selector, [ Element, jQuery ])
jQuery(Element)
jQuery(Object)
jQuery(Array)
jQuery(Object)
jQuery() - jQuery(String, [ document ])
jQuery(String, Object) - jQuery(Function)
- closest(Selector)
closest(Selector, [ Element ])
closest(jQuery)
closest(Element) - closest(Array, [ Element ])
- add(Selector)
add(Elements)
add(HTML)
add(jQuery object )
add(Selector, Element) - not(Selector)
not(Elements)
not(Function) - jQuery.param(Array, Object)
jQuery.param(Array, Object, Boolean) - offset()
- offset(Object)
offset(Function) - css(String)
- css(String, String, Number)
css(String, Function)
css(Map) - unwrap()
- detach([ Selector ])
- replaceWith(String, Element, jQuery)
replaceWith(Function) - wrapInner(String)
wrapInner(Function) - wrapAll(String, Selector, Element, jQuery)
- wrap(String, Selector, Element, jQuery)
wrap(Function) - before(String, Element, jQuery, [ String, Element, Array, jQuery ])
before(Function) - after(String, Element, jQuery, [ String, Element, Array, jQuery ])
after(Function) - prepend(String, Element, jQuery, [ String, Element, jQuery ])
prepend(Function) - append(String, Element, jQuery, [ String, Element, Array, jQuery ])
append(Function) - val()
- val(String)
val(Function) - text()
- text(String)
text(Function) - html()
- html(String)
html(Function) - filter(Selector)
filter(Function)
filter(Element)
filter(Object) - toggleClass(String)
toggleClass(String, Boolean)
toggleClass([ Boolean ])
toggleClass(Function, [ Boolean ]) - removeClass([ String ])
removeClass(Function) - removeAttr(String)
- addClass(String)
addClass(Function)
- jQuery.proxy(Function, Object)
-
- jQuery.now()
- jQuery.cssHooks()
- jQuery.type(Object)
- jQuery.isWindow(Object)
- jQuery.fx.interval()
- event.namespace()
- undelegate()
undelegate(String, String)
undelegate(String, String, Function)
undelegate(String, Map)
undelegate(String) - delegate(String, String, Function)
delegate(String, String, Object, Function)
delegate(String, Map) - focusout(Function)
focusout([ Object ], Function) - focusin(Function)
focusin([ Object ], Function) - jQuery.data(Element, String, Object)
- jQuery.data(Element, String)
jQuery.data(Element) - keydown(Function)
keydown([ Object ], Function)
keydown() - data(String, Object)
data(Object) - data(String)
data() - scroll(Function)
scroll([ Object ], Function)
scroll() - resize(Function)
resize([ Object ], Function)
resize() - keyup(Function)
keyup([ Object ], Function)
keyup() - keypress(Function)
keypress([ Object ], Function)
keypress() - submit(Function)
submit([ Object ], Function)
submit() - select(Function)
select([ Object ], Function)
select() - change(Function)
change([ Object ], Function)
change() - blur(Function)
blur([ Object ], Function)
blur() - focus(Function)
focus([ Object ], Function)
focus() - mousemove(Function)
mousemove([ Object ], Function)
mousemove() - mouseleave(Function)
mouseleave([ Object ], Function)
mouseleave() - mouseenter(Function)
mouseenter([ Object ], Function)
mouseenter() - mouseout(Function)
mouseout([ Object ], Function)
mouseout() - mouseover(Function)
mouseover([ Object ], Function)
mouseover() - dblclick(Function)
dblclick([ Object ], Function)
dblclick() - click(Function)
click([ Object ], Function)
click() - mouseup(Function)
mouseup([ Object ], Function)
mouseup() - mousedown(Function)
mousedown([ Object ], Function)
mousedown() - error(Function)
error([ Object ], Function) - unload(Function)
unload([ Object ], Function) - load(Function)
load([ Object ], Function) - die()
- die(String, [ String ])
die(Map) - unbind([ String ], [ Function ])
unbind(String, Boolean)
unbind(Object) - bind(String, [ Object ], Function)
bind(String, [ Object ], Boolean)
bind(Object) - fadeTo(String,Number, Number, [ Callback ])
fadeTo(String,Number, Number, [ String ], [ Callback ]) - fadeOut([ String,Number ], [ Callback ])
fadeOut([ String,Number ], [ String ], [ Callback ]) - fadeIn([ String,Number ], [ Callback ])
fadeIn([ String,Number ], [ String ], [ Callback ]) - slideToggle([ String,Number ], [ Callback ])
slideToggle([ String,Number ], [ String ], [ Callback ]) - slideUp([ String,Number ], [ Callback ])
slideUp([ String,Number ], [ String ], [ Callback ]) - slideDown([ String,Number ], [ Callback ])
slideDown([ String,Number ], [ String ], [ Callback ]) - toggle([ String,Number ], [ Callback ])
toggle([ String,Number ], [ String ], [ Callback ])
toggle(Boolean) - hide()
hide(String,Number, [ Callback ])
hide([ String,Number ], [ String ], [ Callback ]) - show()
show(String,Number, [ Callback ])
show([ String,Number ], [ String ], [ Callback ])
- jQuery.now()
-
- jQuery.ajaxPrefilter([ String ], Function)
- jQuery.hasData(Element)
- deferred.promise([ Object ])
- jQuery.parseXML(String)
- jQuery.when(Deferred)
- deferred.resolveWith(Object, [ Array ])
- deferred.rejectWith(Object, [ Array ])
- deferred.fail(Function, [ Function ])
- deferred.done(Function, [ Function ])
- deferred.then(Function, Function)
deferred.then(Function, Function, [ Function ]) - deferred.reject(Object)
- deferred.isRejected()
- deferred.isResolved()
- deferred.resolve(Object)
- jQuery.sub()
- jQuery.post(String, [ Map, String ], [ Function ], [ String ])
- jQuery.getScript(String, [ Function ])
- jQuery.getJSON(String, [ Map ], [ Function ])
- jQuery.get(String, [ Map, String ], [ Function ], [ String ])
- jQuery.ajax(String, [ Map ])
jQuery.ajax(Map) - clone([ Boolean ])
clone([ Boolean ], [ Boolean ])
- jQuery.ajaxPrefilter([ String ], Function)
-
- :focus
- deferred.pipe([ Function ], [ Function ])
deferred.pipe([ Function ], [ Function ], [ Function ]) - deferred.always(Function, [ Function ])
- promise([ String ], [ Object ])
- removeProp(String)
- prop(String)
- prop(String, String, Number, Boolean)
prop(Map)
prop(String, Function) - jQuery.holdReady(Boolean)
- undelegate()
undelegate(String, String)
undelegate(String, String, Function)
undelegate(String, Map)
undelegate(String) - parentsUntil([ Selector ], [ Selector ])
parentsUntil([ Element ], [ Selector ]) - prevUntil([ Selector ], [ Selector ])
prevUntil([ Element ], [ Selector ]) - nextUntil([ Selector ], [ Selector ])
nextUntil([ Element ], [ Selector ]) - find(Selector)
find(Object)
find(Element) - closest(Selector)
closest(Selector, [ Element ])
closest(jQuery)
closest(Element) - closest(Array, [ Element ])
- jQuery.map(Array, Function)
jQuery.map(Array,Object, Function) - is(Selector)
is(Function)
is(Object)
is(Element) - attr(String)
- attr(String, String,Number)
attr(Map)
attr(String, Function)
-
- callbacks.fired()
- jQuery.Callbacks(String)
- callbacks.locked()
- callbacks.empty()
- callbacks.lock()
- callbacks.fire()
- callbacks.remove(Function)
- callbacks.add(Function)
- callbacks.disable()
- callbacks.has(Function)
- callbacks.fireWith([ ], [ ])
- deferred.progress(Function)
- deferred.notifyWith(Object, [ Object ])
- deferred.notify(Object)
- off(String, [ String ], [ Function ])
off(Map, [ String ]) - deferred.state()
- on(String, [ String ], [ Anything ], Function)
on(Map, [ String ], [ Anything ]) - jQuery.isNumeric(Object)
- deferred.pipe([ Function ], [ Function ])
deferred.pipe([ Function ], [ Function ], [ Function ]) - deferred.then(Function, Function)
deferred.then(Function, Function, [ Function ]) - removeData([ String ])
removeData([ Array,String ]) - stop([ Boolean ], [ Boolean ])
stop([ String ], [ Boolean ], [ Boolean ]) - is(Selector)
is(Function)
is(Object)
is(Element)
- callbacks.fired()
-
- callbacks.fired
-
Signature
-
callbacks.fired() returns Boolean
Description
Determine if the callbacks have already been called at least once. Example
Using
callbacks.fired()to determine if the callbacks in a list have been called at least once:// a sample logging function to be added to a callbacks list var foo = function( value ){ console.log( 'foo:' + value ); } var callbacks = $.Callbacks(); // add the function 'foo' to the list callbacks.add( foo ); // fire the items on the list callbacks.fire( 'hello' ); // outputs: 'foo: hello' callbacks.fire( 'world '); // outputs: 'foo: world' // test to establish if the callbacks have been called console.log( callbacks.fired() ); -
- jQuery.Callbacks
-
Signature
-
jQuery.Callbacks(String)
-
String flags :
An optional list of space-separated flags that change how the callback list behaves. Possible flags:
-
once: Ensures the callback list can only be fired once (like a Deferred). -
memory: Keep track of previous values and will call any callback added after the list has been fired right away with the latest "memorized" values (like a Deferred). -
unique: Ensures a callback can only be added once (so there are no duplicates in the list). -
stopOnFalse: Interrupts callings when a callback returns false.
By default a callback list will act like an event callback list and can be "fired" multiple times.
-
-
String flags :
Description
A multi-purpose callbacks list object that provides a powerful way to manage callback lists. The
$.Callbacks()function is internally used to provide the base functionality behind the jQuery$.ajax()and$.Deferred()components. It can be used as a similar base to define functionality for new components.$.Callbacks()support a number of methods includingcallbacks.add(),callbacks.remove(),callbacks.fire()andcallbacks.disable().Getting started
The following are two sample methods named
fn1andfn2:var fn1 = function( value ){ console.log( value ); } var fn2 = function( value ){ fn1('fn2 says:' + value); return false; }These can be added as callbacks to a
$.Callbackslist and invoked follows:var callbacks = $.Callbacks(); callbacks.add( fn1 ); callbacks.fire( 'foo!' ); // outputs: foo! callbacks.add( fn2 ); callbacks.fire( 'bar!' ); // outputs: bar!, fn2 says: bar!The result of this is that it becomes simple to construct complex lists of callbacks where input values can be passed through to as many functions as needed with ease.
Two specific methods were being used above:
.add()and.fire().add() supports adding new callbacks to the callback list, whilst fire() provides a way to pass arguments to be processed by the callbacks in the same list.Another method supported by
$.Callbacksis remove(), which has the ability to remove a particular callback from the callback list. Here's a practical example of .remove() being used:var callbacks = $.Callbacks(); callbacks.add( fn1 ); callbacks.fire( 'foo!' ); // outputs: foo! callbacks.add( fn2 ); callbacks.fire( 'bar!' ); // outputs: bar!, fn2 says: bar! callbacks.remove(fn2); callbacks.fire( 'foobar' ); // only outputs foobar, as fn2 has been removed.Supported Flags
Flagsis an optional argument to$.Callbacks(), structured as a list of space-separated strings that change how the callback list behaves (eg.$.Callbacks( 'unique stopOnFalse' )).For examples of how
flagsshould ideally be used, see below:$.Callbacks( 'once' ):var callbacks = $.Callbacks( "once" ); callbacks.add( fn1 ); callbacks.fire( 'foo' ); callbacks.add( fn2 ); callbacks.fire( 'bar' ); callbacks.remove( fn2 ); callbacks.fire( 'foobar' ); /* output: foo */
$.Callbacks( 'memory' ):var callbacks = $.Callbacks( 'memory' ); callbacks.add( fn1 ); callbacks.fire( 'foo' ); callbacks.add( fn2 ); callbacks.fire( 'bar' ); callbacks.remove( fn2 ); callbacks.fire( 'foobar' ); /* output: foo fn2 says:foo bar fn2 says:bar foobar */
$.Callbacks( 'unique' ):var callbacks = $.Callbacks( 'unique' ); callbacks.add( fn1 ); callbacks.fire( 'foo' ); callbacks.add( fn1 ); // repeat addition callbacks.add( fn2 ); callbacks.fire( 'bar' ); callbacks.remove( fn2 ); callbacks.fire( 'foobar' ); /* output: foo bar fn2 says:bar foobar */
$.Callbacks( 'stopOnFalse' ):var fn1 = function( value ){ console.log( value ); return false; } var fn2 = function( value ){ fn1('fn2 says:' + value); return false; } var callbacks = $.Callbacks( 'stopOnFalse'); callbacks.add( fn1 ); callbacks.fire( 'foo' ); callbacks.add( fn2 ); callbacks.fire( 'bar' ); callbacks.remove( fn2 ); callbacks.fire( 'foobar' ); /* output: foo bar foobar */Because $.Callbacks() supports a list of flags rather than just one, setting several flags has a cumulative effect similar to '&&'. This means it's possible to combine flags to create callback lists that are say, both unique and ensure if list was already fired, adding more callbacks will have it called with the latest fired value (i.e.
$.Callbacks("unique memory")).$.Callbacks( 'unique memory' ):var fn1 = function( value ){ console.log( value ); return false; } var fn2 = function( value ){ fn1('fn2 says:' + value); return false; } var callbacks = $.Callbacks( 'unique memory' ); callbacks.add( fn1 ); callbacks.fire( 'foo' ); callbacks.add( fn1 ); // repeat addition callbacks.add( fn2 ); callbacks.fire( 'bar' ); callbacks.add( fn2 ); callbacks.fire( 'baz' ); callbacks.remove( fn2 ); callbacks.fire( 'foobar' ); /* output: foo fn2 says:foo bar fn2 says:bar baz fn2 says:baz foobar */Flag combinations are internally used with
$.Callbacks()in jQuery for the.done()and.fail()buckets on a Deferred - both of which use$.Callbacks('memory once').$.Callbacks methods can also be detached, should there be a need to define short-hand versions for convenience:
var callbacks = $.Callbacks(); var add = callbacks.add; var remove = callbacks.remove; var fire = callbacks.fire; add( fn1 ); fire( 'hello world'); remove( fn1 );
$.Callbacks, $.Deferred and Pub/Sub
The general idea behind pub/sub (the Observer pattern) is the promotion of loose coupling in applications. Rather than single objects calling on the methods of other objects, an object instead subscribes to a specific task or activity of another object and is notified when it occurs. Observers are also called Subscribers and we refer to the object being observed as the Publisher (or the subject). Publishers notify subscribers when events occur
As a demonstration of the component-creation capabilities of
$.Callbacks(), it's possible to implement a Pub/Sub system using only callback lists. Using$.Callbacksas a topics queue, a system for publishing and subscribing to topics can be implemented as follows:var topics = {}; jQuery.Topic = function( id ) { var callbacks, method, topic = id && topics[ id ]; if ( !topic ) { callbacks = jQuery.Callbacks(); topic = { publish: callbacks.fire, subscribe: callbacks.add, unsubscribe: callbacks.remove }; if ( id ) { topics[ id ] = topic; } } return topic; };This can then be used by parts of your application to publish and subscribe to events of interest quite easily:
// Subscribers $.Topic( 'mailArrived' ).subscribe( fn1 ); $.Topic( 'mailArrived' ).subscribe( fn2 ); $.Topic( 'mailSent' ).subscribe( fn1 ); // Publisher $.Topic( 'mailArrived' ).publish( 'hello world!' ); $.Topic( 'mailSent' ).publish( 'woo! mail!' ); // Here, 'hello world!' gets pushed to fn1 and fn2 // when the 'mailArrived' notification is published // with 'woo! mail!' also being pushed to fn1 when // the 'mailSent' notification is published. /* output: hello world! fn2 says: hello world! woo! mail! */
Whilst this is useful, the implementation can be taken further. Using
$.Deferreds, it's possible to ensure publishers only publish notifications for subscribers once particular tasks have been completed (resolved). See the below code sample for some further comments on how this could be used in practice:// subscribe to the mailArrived notification $.Topic( 'mailArrived' ).subscribe( fn1 ); // create a new instance of Deferreds var dfd = $.Deferred(); // define a new topic (without directly publishing) var topic = $.Topic( 'mailArrived' ); // when the deferred has been resolved, publish a // notification to subscribers dfd.done( topic.publish ); // Here the Deferred is being resolved with a message // that will be passed back to subscribers. It's possible to // easily integrate this into a more complex routine // (eg. waiting on an ajax call to complete) so that // messages are only published once the task has actually // finished. dfd.resolve( 'its been published!' );
-
- callbacks.locked
-
Signature
-
callbacks.locked() returns Boolean
Description
Determine if the callbacks list has been locked. Example
Using
callbacks.locked()to determine the lock-state of a callback list:// a sample logging function to be added to a callbacks list var foo = function( value ){ console.log( 'foo:' + value); } var callbacks = $.Callbacks(); // add the logging function to the callback list callbacks.add( foo ); // fire the items on the list, passing an argument callbacks.fire( 'hello' ); // outputs 'foo: hello' // lock the callbacks list callbacks.lock(); // test the lock-state of the list console.log ( callbacks.locked() ); //true -
- callbacks.empty
-
Signature
-
callbacks.empty() returns undefined
Description
Remove all of the callbacks from a list. Example
Using
callbacks.empty()to empty a list of callbacks:// a sample logging function to be added to a callbacks list var foo = function( value1, value2 ){ console.log( 'foo:' + value1 + ',' + value2 ); } // another function to also be added to the list var bar = function( value1, value2 ){ console.log( 'bar:' + value1 + ',' + value2 ); } var callbacks = $.Callbacks(); // add the two functions callbacks.add( foo ); callbacks.add( bar ); // empty the callbacks list callbacks.empty(); // check to ensure all callbacks have been removed console.log( callbacks.has( foo ) ); // false console.log( callbacks.has( bar ) ); // false -
- callbacks.lock
-
Signature
-
callbacks.lock() returns undefined
Description
Lock a callback list in its current state. Example
Using
callbacks.lock()to lock a callback list to avoid further changes being made to the list state:// a sample logging function to be added to a callbacks list var foo = function( value ){ console.log( 'foo:' + value); } var callbacks = $.Callbacks(); // add the logging function to the callback list callbacks.add( foo ); // fire the items on the list, passing an argument callbacks.fire( 'hello' ); // outputs 'foo: hello' // lock the callbacks list callbacks.lock(); // try firing the items again callbacks.fire( 'world' ); // as the list was locked, no items // were called so 'world' isn't logged -
- callbacks.fire
-
Signature
-
callbacks.fire() returns undefined
-
arguments :
The argument or list of arguments to pass back to the callback list.
-
arguments :
Description
Call all of the callbacks with the given arguments Example
Using
callbacks.fire()to invoke the callbacks in a list with any arguments that have been passed:// a sample logging function to be added to a callbacks list var foo = function( value ){ console.log( 'foo:' + value ); } var callbacks = $.Callbacks(); // add the function 'foo' to the list callbacks.add( foo ); // fire the items on the list callbacks.fire( 'hello' ); // outputs: 'foo: hello' callbacks.fire( 'world '); // outputs: 'foo: world' // add another function to the list var bar = function( value ){ console.log( 'bar:' + value ); } // add this function to the list callbacks.add( bar ); // fire the items on the list again callbacks.fire( 'hello again' ); // outputs: // 'foo: hello again' // 'bar: hello again' -
- callbacks.remove
-
Signature
-
callbacks.remove(Function) returns undefined
-
Function callbacks :
A function, or array of functions, that are to be removed from the callback list.
-
Function callbacks :
Description
Remove a callback or a collection of callbacks from a callback list Example
Using
callbacks.remove()to remove callbacks from a callback list:// a sample logging function to be added to a callbacks list var foo = function( value ){ console.log( 'foo:' + value ); } var callbacks = $.Callbacks(); // add the function 'foo' to the list callbacks.add( foo ); // fire the items on the list callbacks.fire( 'hello' ); // outputs: 'foo: hello' // remove 'foo' from the callback list callbacks.remove( foo ); // fire the items on the list again callbacks.fire( 'world' ); // nothing output as 'foo' is no longer in the list -
- callbacks.add
-
Signature
-
callbacks.add(Function) returns undefined
-
Function callbacks :
A function, or array of functions, that are to be added to the callback list.
-
Function callbacks :
Description
Add a callback or a collection of callbacks to a callback list Example
Using
callbacks.add()to add new callbacks to a callback list:// a sample logging function to be added to a callbacks list var foo = function( value ){ console.log( 'foo:' + value ); } // another function to also be added to the list var bar = function( value ){ console.log( 'bar:' + value ); } var callbacks = $.Callbacks(); // add the function 'foo' to the list callbacks.add( foo ); // fire the items on the list callbacks.fire( 'hello' ); // outputs: 'foo: hello' // add the function 'bar' to the list callbacks.add( bar ); // fire the items on the list again callbacks.fire( 'world' ); // outputs: // 'foo: world' // 'bar: world' -
- callbacks.disable
-
Signature
-
callbacks.disable() returns undefined
Description
Disable a callback list from doing anything more. Example
Using
callbacks.disable()to disable further calls being made to a callback list:// a sample logging function to be added to a callbacks list var foo = function( value ){ console.log( value ); } var callbacks = $.Callbacks(); // add the above function to the list callbacks.add( foo ); // fire the items on the list callbacks.fire( 'foo' ); // outputs: foo // disable further calls being possible callbacks.disable(); // attempt to fire with 'foobar' as an argument callbacks.fire( 'foobar' ); // foobar isn't output -
- callbacks.has
-
Signature
-
callbacks.has(Function) returns Boolean
-
Function callback :
The callback to search for.
-
Function callback :
Description
Determine whether a supplied callback is in a list Example
Using
callbacks.has()to check if a callback list contains a specific callback:// a sample logging function to be added to a callbacks list var foo = function( value1, value2 ){ console.log( 'Received:' + value1 + ',' + value2 ); } // a second function which will not be added to the list var bar = function( value1, value2 ){ console.log( 'foobar'); } var callbacks = $.Callbacks(); // add the log method to the callbacks list callbacks.add( foo ); // determine which callbacks are in the list console.log( callbacks.has( foo ) ); // true console.log( callbacks.has( bar ) ); // false -
- callbacks.fireWith
-
Signature
-
callbacks.fireWith([ ], [ ]) returns undefined
-
context :
A reference to the context in which the callbacks in the list should be fired. -
args :
An argument, or array of arguments, to pass to the callbacks in the list.
-
context :
Description
Call all callbacks in a list with the given context and arguments. Example
Using
callbacks.fireWith()to fire a list of callbacks with a specific context and an array of arguments:// a sample logging function to be added to a callbacks list var log = function( value1, value2 ){ console.log( 'Received:' + value1 + ',' + value2 ); } var callbacks = $.Callbacks(); // add the log method to the callbacks list callbacks.add( log ); // fire the callbacks on the list using the context 'window' // and an arguments array callbacks.fireWith( window, ['foo','bar']); // outputs: Received: foo, bar -
- deferred.progress
-
Signature
-
deferred.progress(Function) returns Deferred
-
Function progressCallbacks :
A function, or array of functions, that is called when the Deferred generates progress notifications.
-
Function progressCallbacks :
Description
Add handlers to be called when the Deferred object generates progress notifications. The argument can be either a single function or an array of functions. When the Deferred generates progress notifications by calling
notifyornotifyWith, theprogressCallbacksare called. Sincedeferred.progress()returns the Deferred object, other methods of the Deferred object can be chained to this one. When the Deferred is resolved or rejected, progress callbacks will no longer be called. For more information, see the documentation for Deferred object. -
- deferred.notifyWith
-
Signature
-
deferred.notifyWith(Object, [ Object ]) returns Deferred
-
Object context :
Context passed to the progressCallbacks as the thisobject. -
Object args :
Optional arguments that are passed to the progressCallbacks.
-
Object context :
Description
Call the progressCallbacks on a Deferred object with the given context and args.Normally, only the creator of a Deferred should call this method; you can prevent other code from changing the Deferred's state or reporting status by returning a restricted Promise object through deferred.promise().
When
deferred.notifyWithis called, any progressCallbacks added bydeferred.thenordeferred.progressare called. Callbacks are executed in the order they were added. Each callback is passed theargsfrom the.notifyWith(). Any calls to.notifyWith()after a Deferred is resolved or rejected (or any progressCallbacks added after that) are ignored. For more information, see the documentation for Deferred object. -
- deferred.notify
-
Signature
-
deferred.notify(Object) returns Deferred
-
Object args :
Optional arguments that are passed to the progressCallbacks.
-
Object args :
Description
Call the progressCallbacks on a Deferred object with the given args.Normally, only the creator of a Deferred should call this method; you can prevent other code from changing the Deferred's state or reporting status by returning a restricted Promise object through deferred.promise().
When
deferred.notifyis called, any progressCallbacks added bydeferred.thenordeferred.progressare called. Callbacks are executed in the order they were added. Each callback is passed theargsfrom the.notify(). Any calls to.notify()after a Deferred is resolved or rejected (or any progressCallbacks added after that) are ignored. For more information, see the documentation for Deferred object. -
- off
-
Signatures
-
off(String, [ String ], [ Function ]) returns jQuery
-
String events :
One or more space-separated event types and optional namespaces, or just namespaces, such as "click", "keydown.myPlugin", or ".myPlugin". -
String selector :
A selector which should match the one originally passed to .on()when attaching event handlers. -
Function handler :
A handler function previously attached for the event(s), or the special value false.
-
String events :
-
off(Map, [ String ]) returns jQuery
-
Map events-map :
A map where the string keys represent one or more space-separated event types and optional namespaces, and the values represent handler functions previously attached for the event(s). -
String selector :
A selector which should match the one originally passed to .on()when attaching event handlers.
-
Map events-map :
Description
Remove an event handler. The
off()method removes event handlers that were attached with.on(). See the discussion of delegated and directly bound events on that page for more information. Specific event handlers can be removed on elements by providing combinations of event names, namespaces, selectors, or handler function names. When multiple filtering arguments are given, all of the arguments provided must match for the event handler to be removed.If a simple event name such as
"click"is provided, all events of that type (both direct and delegated) are removed from the elements in the jQuery set. When writing code that will be used as a plugin, or simply when working with a large code base, best practice is to attach and remove events using namespaces so that the code will not inadvertently remove event handlers attached by other code. All events of all types in a specific namespace can be removed from an element by providing just a namespace, such as".myPlugin". At minimum, either a namespace or event name must be provided.To remove specific delegated event handlers, provide a
selectorargument. The selector string must exactly match the one passed to.on()when the event handler was attached. To remove all delegated events from an element without removing non-delegated events, use the special value"**".A handler can also be removed by specifying the function name in the
handlerargument. When jQuery attaches an event handler, it assigns a unique id to the handler function. Handlers proxied byjQuery.proxy()or a similar mechanism will all have the same unique id (the proxy function), so passing proxied handlers to.offmay remove more handlers than intended. In those situations it is better to attach and remove event handlers using namespaces.As with
.on(), you can pass anevents-mapargument instead of specifying theeventsandhandleras separate arguments. The keys are events and/or namespaces; the values are handler functions or the special valuefalse. -
- deferred.state
-
Signature
-
deferred.state() returns String
Description
Determine the current state of a Deferred object. The deferred.state() method returns a string representing the current state of the Deferred object. The Deferred object can be in one of three states:
- "pending": The Deferred object is not yet in a completed state (neither "rejected" nor "resolved").
-
"resolved": The Deferred object is in the resolved state, meaning that either
deferred.resolve()ordeferred.resolveWith()has been called for the object and the doneCallbacks have been called (or are in the process of being called). -
"rejected": The Deferred object is in the rejected state, meaning that either
deferred.reject()ordeferred.rejectWith()has been called for the object and the failCallbacks have been called (or are in the process of being called).
This method is primarily useful for debugging to determine, for example, whether a Deferred has already been resolved even though you are inside code that intended to reject it.
-
- on
-
Signatures
-
on(String, [ String ], [ Anything ], Function) returns jQuery
-
String events :
One or more space-separated event types and optional namespaces, such as "click" or "keydown.myPlugin". -
String selector :
A selector string to filter the descendants of the selected elements that trigger the event. If the selector is nullor omitted, the event is always triggered when it reaches the selected element. -
Anything data :
Data to be passed to the handler in event.datawhen an event is triggered. -
Function handler :
A function to execute when the event is triggered. The value falseis also allowed as a shorthand for a function that simply doesreturn false.
-
String events :
-
on(Map, [ String ], [ Anything ]) returns jQuery
-
Map events-map :
A map in which the string keys represent one or more space-separated event types and optional namespaces, and the values represent a handler function to be called for the event(s). -
String selector :
A selector string to filter the descendants of the selected elements that will call the handler. If the selector is null or omitted, the handler is always called when it reaches the selected element. -
Anything data :
Data to be passed to the handler in event.datawhen an event occurs.
-
Map events-map :
Description
Attach an event handler function for one or more events to the selected elements. The
.on()method attaches event handlers to the currently selected set of elements in the jQuery object. As of jQuery 1.7, the.on()method provides all functionality required for attaching event handlers. For equivalents to older jQuery event methods, see.bind(),.delegate(), and.live(). To remove events bound with.on(), see.off(). To attach an event that runs only once and then removes itself, see.one()Event names and namespaces
Any event names can be used for the
eventsargument. jQuery will pass through the browser's standard JavaScript event types, calling thehandlerfunction when the browser generates events due to user actions such asclick. In addition, the.trigger()method can trigger both standard browser event names and custom event names to call attached handlers.An event name can be qualified by event namespaces that simplify removing or triggering the event. For example,
"click.myPlugin.simple"defines both the myPlugin and simple namespaces for this particular click event. A click event handler attached via that string could be removed with.off("click.myPlugin")or.off("click.simple")without disturbing other click handlers attached to the elements. Namespaces are similar to CSS classes in that they are not hierarchical; only one name needs to match. Namespaces beginning with an underscore are reserved for jQuery's use.In the second form of
.on(), theevents-mapargument is a JavaScript Object, or "map". The keys are strings in the same form as theeventsargument with space-separated event type names and optional namespaces. The value for each key is a function (orfalsevalue) that is used as thehandlerinstead of the final argument to the method. In other respects, the two forms are identical in their behavior as described below.Direct and delegated events
The majority of browser events bubble, or propagate, from the deepest, innermost element (the event target) in the document where they occur all the way up to the body and the
documentelement. In Internet Explorer 8 and lower, a few events such aschangeandsubmitdo not natively bubble but jQuery patches these to bubble and create consistent cross-browser behavior. Thefocusandblurevents are specified by the W3C to not bubble, but jQuery defines cross-browserfocusinandfocusoutevents that do bubble.If
selectoris omitted or is null, the event handler is referred to as direct or directly-bound. The handler is called every time an event occurs on the selected elements, whether it occurs directly on the element or bubbles from a descendant (inner) element.When a
selectoris provided, the event handler is referred to as delegated. The handler is not called when the event occurs directly on the bound element, but only for descendants (inner elements) that match the selector. jQuery bubbles the event from the event target up to the element where the handler is attached (i.e., innermost to outermost element) and runs the handler for any elements along that path matching the selector.Event handlers are bound only to the currently selected elements; they must exist on the page at the time your code makes the call to
.on(). To ensure the elements are present and can be selected, perform event binding inside a document ready handler for elements that are in the HTML markup on the page. If new HTML is being injected into the page, select the elements and attach event handlers after the new HTML is placed into the page. Or, use delegated events to attach an event handler, as described next.Delegated events have the advantage that they can process events from descendant elements that are added to the document at a later time. By picking an element that is guaranteed to be present at the time the delegated event handler is attached, you can use delegated events to avoid the need to frequently attach and remove event handlers. This element could be the container element of a view in a Model-View-Controller design, for example, or
documentif the event handler wants to monitor all bubbling events in the document. Thedocumentelement is available in theheadof the document before loading any other HTML, so it is safe to attach events there without waiting for the document to be ready.In addition to their ability to handle events on descendant elements not yet created, another advantage of delegated events is their potential for much lower overhead when many elements must be monitored. On a data table with 1,000 rows in its
tbody, this example attaches a handler to 1,000 elements:$("#dataTable tbody tr").on("click", function(event){ alert($(this).text()); });A delegated-events approach attaches an event handler to only one element, the tbody, and the event only needs to bubble up one level (from the clicked
trtotbody):$("#dataTable tbody").on("click", "tr", function(event){ alert($(this).text()); });The event handler and its environment
The
handlerargument is a function (or the valuefalse, see below), and is required unless theevents-mapform is used. You can provide an anonymous handler function at the point of the.on()call, as the examples have done above, or declare a named function and pass its name:function notify() { alert("clicked"); } $("button").on("click", notify);When the browser triggers an event or other JavaScript calls jQuery's
.trigger()method, jQuery passes the handler anevent objectit can use to analyze and change the status of the event. This object is a normalized subset of data provided by the browser; the browser's unmodified native event object is available inevent.originalEvent. For example,event.typecontains the event name (e.g., "resize") andevent.targetindicates the deepest (innermost) element where the event occurred.By default, most events bubble up from the original event target to the
documentelement. At each element along the way, jQuery calls any matching event handlers that have been attached. A handler can prevent the event from bubbling further up the document tree (and thus prevent handlers on those elements from running) by callingevent.stopPropagation(). Any other handlers attached on the current element will run however. To prevent that, callevent.stopImmediatePropagation(). (Event handlers bound to an element are called in the same order that they were bound.)Similarly, a handler can call
event.preventDefault()to cancel any default action that the browser may have for this event; for example, the default action on aclickevent is to follow the link. Not all browser events have default actions, and not all default actions can be canceled. See the W3C Events Specification for details.Returning
falsefrom an event handler will automatically callevent.stopPropagation()andevent.preventDefault(). Afalsevalue can also be passed for thehandleras a shorthand forfunction(){ return false; }. So,$("a.disabled").on("click", false);attaches an event handler to all links with class "disabled" that prevents them from being followed when they are clicked and also stops the event from bubbling.When jQuery calls a handler, the
thiskeyword is a reference to the element where the event is being delivered; for directly bound events this is the element where the event was attached and for delegated events this is an element matchingselector. (Note thatthismay not be equal toevent.targetif the event has bubbled from a descendant element.) To create a jQuery object from the element so that it can be used with jQuery methods, use$(this).Passing data to the handler
If a
dataargument is provided to.on()and is notnullorundefined, it is passed to the handler in theevent.dataproperty each time an event is triggered. Thedataargument can be any type, but if a string is used theselectormust either be provided or explicitly passed asnullso that the data is not mistaken for a selector. Best practice is to use an object (map) so that multiple values can be passed as properties.The same event handler can be bound to an element multiple times. This is especially useful when the
event.datafeature is being used, or when other unique data resides in a closure around the event handler function. For example:function greet(event) { alert("Hello "+event.data.name); } $("button").on("click", { name: "Karl" }, greet); $("button").on("click", { name: "Addy" }, greet);The above code will generate two different alerts when the button is clicked.
As an alternative or in addition to the
dataargument provided to the.on()method, you can also pass data to an event handler using a second argument to .trigger() or .triggerHandler().Event performance
In most cases, an event such as
clickoccurs infrequently and performance is not a significant concern. However, high frequency events such asmousemoveorscrollcan fire dozens of times per second, and in those cases it becomes more important to use events judiciously. Performance can be increased by reducing the amount of work done in the handler itself, caching information needed by the handler rather than recalculating it, or by rate-limiting the number of actual page updates usingsetTimeout.Attaching many delegated event handlers near the top of the document tree can degrade performance. Each time the event occurs, jQuery must compare all selectors of all attached events of that type to every element in the path from the event target up to the top of the document. For best performance, attach delegated events at a document location as close as possible to the target elements. Avoid excessive use of
documentordocument.bodyfor delegated events on large documents.jQuery can process simple selectors of the form
tag#id.classvery quickly when they are used to filter delegated events. So,"#myForm","a.external", and"button"are all fast selectors. Delegated events that use more complex selectors, particularly hierarchical ones, can be several times slower--although they are still fast enough for most applications. Hierarchical selectors can often be avoided simply by attaching the handler to a more appropriate point in the document. For example, instead of$("body").on("click", "#commentForm .addNew", addComment)use$("#commentForm").on("click", ".addNew", addComment).Additional notes
There are shorthand methods for some events such as
.click()that can be used to attach or trigger event handlers. For a complete list of shorthand methods, see the events category.Although not recommended, the pseudo-event-name
"hover"can be used as a shorthand for"mouseenter mouseleave". Do not confuse it with the.hover()method, which accepts two functions. There is only one handler function attached by the pseudo-event-name"hover"; the handler should examineevent.typeto determine whether the event ismouseenterormouseleave.jQuery's event system requires that a DOM element allow attaching data via a property on the element, so that events can be tracked and delivered. The
object,embed, andappletelements cannot attach data, and therefore cannot have jQuery events bound to them.The
errorevent on thewindowobject uses nonstandard arguments and return value conventions, so it is not supported by jQuery. Instead, assign a handler function directly to thewindow.onerrorproperty.In Internet Explorer 8 and lower, the
pasteandresetevents do not bubble and are not supported for use with delegation. They can be used when the event handler is directly attached to the element generating the event. -
- jQuery.isNumeric
-
Signature
-
jQuery.isNumeric(Object) returns Boolean
-
Object value :
The value to be tested.
-
Object value :
Description
Determines whether its argument is a number. The
$.isNumeric()method checks whether its argument represents a numeric value. If so, it returnstrue. Otherwise it returnsfalse. The argument can be of any type. -
- :focus
-
Description
Selects element if it is currently focused. As with other pseudo-class selectors (those that begin with a ":"), it is recommended to precede
:focuswith a tag name or some other selector; otherwise, the universal selector ("*") is implied. In other words, the bare$(':focus')is equivalent to$('*:focus'). If you are looking for the currently focused element,$( document.activeElement )will retrieve it without having to search the whole DOM tree.
- deferred.pipe
-
Signatures
-
deferred.pipe([ Function ], [ Function ]) returns Promise
-
Function doneFilter :
An optional function that is called when the Deferred is resolved. -
Function failFilter :
An optional function that is called when the Deferred is rejected.
-
Function doneFilter :
-
deferred.pipe([ Function ], [ Function ], [ Function ]) returns Promise
-
Function doneFilter :
An optional function that is called when the Deferred is resolved. -
Function failFilter :
An optional function that is called when the Deferred is rejected. -
Function progressFilter :
An optional function that is called when the Deferred is rejected.
-
Function doneFilter :
Description
Utility method to filter and/or chain Deferreds. The
deferred.pipe()method returns a new promise that filters the status and values of a deferred through a function. ThedoneFilterandfailFilterfunctions filter the original deferred's resolved / rejected status and values. As of jQuery 1.7, the method also accepts aprogressFilterfunction to filter any calls to the original deferred'snotifyornotifyWithmethods. These filter functions can return a new value to be passed along to the piped promise'sdone()orfail()callbacks, or they can return another observable object (Deferred, Promise, etc) which will pass its resolved / rejected status and values to the piped promise's callbacks. If the filter function used isnull, or not specified, the piped promise will be resolved or rejected with the same values as the original. -
- deferred.always
-
Signature
-
deferred.always(Function, [ Function ]) returns Deferred
-
Function alwaysCallbacks :
A function, or array of functions, that is called when the Deferred is resolved or rejected. -
Function alwaysCallbacks :
Optional additional functions, or arrays of functions, that are called when the Deferred is resolved or rejected.
-
Function alwaysCallbacks :
Description
Add handlers to be called when the Deferred object is either resolved or rejected. The argument can be either a single function or an array of functions. When the Deferred is resolved or rejected, the
alwaysCallbacksare called. Sincedeferred.always()returns the Deferred object, other methods of the Deferred object can be chained to this one, including additional.always()methods. When the Deferred is resolved or rejected, callbacks are executed in the order they were added, using the arguments provided to theresolve,reject,resolveWithorrejectWithmethod calls. For more information, see the documentation for Deferred object. -
- promise
-
Signature
-
promise([ String ], [ Object ]) returns Promise
-
String type :
The type of queue that needs to be observed. -
Object target :
Object onto which the promise methods have to be attached
-
String type :
Description
Return a Promise object to observe when all actions of a certain type bound to the collection, queued or not, have finished. The
.promise()method returns a dynamically generated Promise that is resolved once all actions of a certain type bound to the collection, queued or not, have ended.By default,
typeis"fx", which means the returned Promise is resolved when all animations of the selected elements have completed.Resolve context and sole argument is the collection onto which
.promise()has been called.If
targetis provided,.promise()will attach the methods onto it and then return this object rather than create a new one. This can be useful to attach the Promise behavior to an object that already exists.Note: The returned Promise is linked to a Deferred object stored on the
.data()for an element. Since the.remove()method removes the element's data as well as the element itself, it will prevent any of the element's unresolved Promises from resolving. If it is necessary to remove an element from the DOM before its Promise is resolved, use.detach()instead and follow with.removeData()after resolution. -
- removeProp
-
Signature
-
removeProp(String) returns jQuery
-
String propertyName :
The name of the property to set.
-
String propertyName :
Description
Remove a property for the set of matched elements. The
.removeProp()method removes properties set by the.prop()method.With some built-in properties of a DOM element or
windowobject, browsers may generate an error if an attempt is made to remove the property. jQuery first assigns the valueundefinedto the property and ignores any error the browser generates. In general, it is only necessary to remove custom properties that have been set on an object, and not built-in (native) properties.Note: Do not use this method to remove native properties such as checked, disabled, or selected. This will remove the property completely and, once removed, cannot be added again to element. Use
.prop()to set these properties tofalseinstead. -
- prop
-
Signature
-
prop(String) returns String
-
String propertyName :
The name of the property to get.
-
String propertyName :
Description
Get the value of a property for the first element in the set of matched elements. The
.prop()method gets the property value for only the first element in the matched set. It returnsundefinedfor the value of a property that has not been set, or if the matched set has no elements. To get the value for each element individually, use a looping construct such as jQuery's.each()or.map()method.The difference between attributes and properties can be important in specific situations. Before jQuery 1.6, the
.attr()method sometimes took property values into account when retrieving some attributes, which could cause inconsistent behavior. As of jQuery 1.6, the.prop()method provides a way to explicitly retrieve property values, while.attr()retrieves attributes.For example,
selectedIndex,tagName,nodeName,nodeType,ownerDocument,defaultChecked, anddefaultSelectedshould be retrieved and set with the.prop()method. Prior to jQuery 1.6, these properties were retrievable with the.attr()method, but this was not within the scope ofattr. These do not have corresponding attributes and are only properties.Concerning boolean attributes, consider a DOM element defined by the HTML markup
<input type="checkbox" checked="checked" />, and assume it is in a JavaScript variable namedelem:elem.checkedtrue(Boolean) Will change with checkbox state$(elem).prop("checked")true(Boolean) Will change with checkbox stateelem.getAttribute("checked")"checked"(String) Initial state of the checkbox; does not change$(elem).attr("checked")(1.6)"checked"(String) Initial state of the checkbox; does not change$(elem).attr("checked")(1.6.1+)"checked"(String) Will change with checkbox state$(elem).attr("checked")(pre-1.6)true(Boolean) Changed with checkbox stateAccording to the W3C forms specification, the
checkedattribute is a boolean attribute, which means the corresponding property is true if the attribute is present at all—even if, for example, the attribute has no value or an empty string value. The preferred cross-browser-compatible way to determine if a checkbox is checked is to check for a "truthy" value on the element's property using one of the following:if ( elem.checked )if ( $(elem).prop("checked") )if ( $(elem).is(":checked") )
If using jQuery 1.6, the code
if ( $(elem).attr("checked") )will retrieve the actual content attribute, which does not change as the checkbox is checked and unchecked. It is meant only to store the default or initial value of the checked property. To maintain backwards compatability, the.attr()method in jQuery 1.6.1+ will retrieve and update the property for you so no code for boolean attributes is required to be changed to.prop(). Nevertheless, the preferred way to retrieve a checked value is with one of the options listed above. To see how this works in the latest jQuery, check/uncheck the checkbox in the example below. -
- prop
-
Signatures
-
prop(String, String, Number, Boolean) returns jQuery
-
String propertyName :
The name of the property to set. -
String, Number, Boolean value :
A value to set for the property.
-
String propertyName :
-
prop(Map) returns jQuery
-
Map map :
A map of property-value pairs to set.
-
Map map :
-
prop(String, Function) returns jQuery
-
String propertyName :
The name of the property to set. -
Function function(index, oldPropertyValue) :
A function returning the value to set. Receives the index position of the element in the set and the old property value as arguments. Within the function, the keyword thisrefers to the current element.
-
String propertyName :
Description
Set one or more properties for the set of matched elements. The
.prop()method is a convenient way to set the value of properties—especially when setting multiple properties, using values returned by a function, or setting values on multiple elements at once. It should be used when settingselectedIndex,tagName,nodeName,nodeType,ownerDocument,defaultChecked, ordefaultSelected. Since jQuery 1.6, these properties can no longer be set with the.attr()method. They do not have corresponding attributes and are only properties.Properties generally affect the dynamic state of a DOM element without changing the serialized HTML attribute. Examples include the
valueproperty of input elements, thedisabledproperty of inputs and buttons, or thecheckedproperty of a checkbox. The.prop()method should be used to set disabled and checked instead of the.attr()method. The.val()method should be used for getting and setting value.$("input").prop("disabled", false); $("input").prop("checked", true); $("input").val("someValue");Important: the
.removeProp()method should not be used to set these properties to false. Once a native property is removed, it cannot be added again. See.removeProp()for more information.Computed property values
By using a function to set properties, you can compute the value based on other properties of the element. For example, to toggle all checkboxes based off their individual values:
$("input[type='checkbox']").prop("checked", function( i, val ) { return !val; });Note: If nothing is returned in the setter function (ie.
function(index, prop){}), or ifundefinedis returned, the current value is not changed. This is useful for selectively setting values only when certain criteria are met. -
- jQuery.ajaxPrefilter
-
Signature
-
jQuery.ajaxPrefilter([ String ], Function) returns undefined
-
String dataTypes :
An optional string containing one or more space-separated dataTypes -
Function handler(options, originalOptions, jqXHR) :
A handler to set default values for future Ajax requests.
-
String dataTypes :
Description
Handle custom Ajax options or modify existing options before each request is sent and before they are processed by $.ajax().A typical prefilter registration using
$.ajaxPrefilter()looks like this:$.ajaxPrefilter( function( options, originalOptions, jqXHR ) { // Modify options, control originalOptions, store jqXHR, etc });where:
-
optionsare the request options -
originalOptionsare the options as provided to the ajax method, unmodified and, thus, without defaults fromajaxSettings -
jqXHRis the jqXHR object of the request
Prefilters are a perfect fit when custom options need to be handled. Given the following code, for example, a call to
$.ajax()would automatically abort a request to the same URL if the customabortOnRetryoption is set totrue:var currentRequests = {}; $.ajaxPrefilter(function( options, originalOptions, jqXHR ) { if ( options.abortOnRetry ) { if ( currentRequests[ options.url ] ) { currentRequests[ options.url ].abort(); } currentRequests[ options.url ] = jqXHR; } });Prefilters can also be used to modify existing options. For example, the following proxies cross-domain requests through http://mydomain.net/proxy/:
$.ajaxPrefilter( function( options ) { if ( options.crossDomain ) { options.url = "http://mydomain.net/proxy/" + encodeURIComponent( options.url ); options.crossDomain = false; } });If the optional
dataTypesargument is supplied, the prefilter will be only be applied to requests with the indicated dataTypes. For example, the following only applies the given prefilter to JSON and script requests:$.ajaxPrefilter( "json script", function( options, originalOptions, jqXHR ) { // Modify options, control originalOptions, store jqXHR, etc });The
$.ajaxPrefilter()method can also redirect a request to another dataType by returning that dataType. For example, the following sets a request as "script" if the URL has some specific properties defined in a customisActuallyScript()function:$.ajaxPrefilter(function( options ) { if ( isActuallyScript( options.url ) ) { return "script"; } });This would ensure not only that the request is considered "script" but also that all the prefilters specifically attached to the script dataType would be applied to it.
-
- jQuery.holdReady
-
Signature
-
jQuery.holdReady(Boolean) returns undefined
-
Boolean hold :
Indicates whether the ready hold is being requested or released
-
Boolean hold :
Description
Holds or releases the execution of jQuery's ready event. The
$.holdReady()method allows the caller to delay jQuery's ready event. This advanced feature would typically be used by dynamic script loaders that want to load additional JavaScript such as jQuery plugins before allowing the ready event to occur, even though the DOM may be ready. This method must be called early in the document, such as in the<head>immediately after the jQuery script tag. Calling this method after the ready event has already fired will have no effect.To delay the ready event, first call
$.holdReady(true). When the ready event should be released to execute, call$.holdReady(false). Note that multiple holds can be put on the ready event, one for each$.holdReady(true)call. The ready event will not actually fire until all holds have been released with a corresponding number of$.holdReady(false)calls and the normal document ready conditions are met. (Seereadyfor more information.) -
- jQuery.hasData
-
Signature
-
jQuery.hasData(Element) returns Boolean
-
Element element :
A DOM element to be checked for data.
-
Element element :
Description
Determine whether an element has any jQuery data associated with it. The
jQuery.hasData()method provides a way to determine if an element currently has any values that were set usingjQuery.data(). If no data is associated with an element (there is no data object at all or the data object is empty), the method returnsfalse; otherwise it returnstrue.The primary advantage of
jQuery.hasData(element)is that it does not create and associate a data object with the element if none currently exists. In contrast,jQuery.data(element)always returns a data object to the caller, creating one if no data object previously existed. -
- jQuery.now
-
Signature
-
jQuery.now() returns Number
Description
Return a number representing the current time. The
$.now()method is a shorthand for the number returned by the expression(new Date).getTime(). -
- jquery
-
Description
A string containing the jQuery version number. The
.jqueryproperty is assigned to the jQuery prototype, commonly referred to by its alias$.fn. It is a string containing the version number ofjQuery, such as "1.5.0" or "1.4.4".
- deferred.promise
-
Signature
-
deferred.promise([ Object ]) returns Promise
-
Object target :
Object onto which the promise methods have to be attached
-
Object target :
Description
Return a Deferred's Promise object. The
deferred.promise()method allows an asynchronous function to prevent other code from interfering with the progress or status of its internal request. The Promise exposes only the Deferred methods needed to attach additional handlers or determine the state (then,done,fail,always,pipe,progress, andstate), but not ones that change the state (resolve,reject,progress,resolveWith,rejectWith, andprogressWith).If
targetis provided,deferred.promise()will attach the methods onto it and then return this object rather than create a new one. This can be useful to attach the Promise behavior to an object that already exists.If you are creating a Deferred, keep a reference to the Deferred so that it can be resolved or rejected at some point. Return only the Promise object via
deferred.promise()so other code can register callbacks or inspect the current state.For more information, see the documentation for Deferred object.
-
- jQuery.cssHooks
-
Description
Hook directly into jQuery to override how particular CSS properties are retrieved or set, normalize CSS property naming, or create custom properties. The
$.cssHooksobject provides a way to define functions for getting and setting particular CSS values. It can also be used to create new cssHooks for normalizing CSS3 features such as box shadows and gradients.For example, some versions of Webkit-based browsers require
-webkit-border-radiusto set theborder-radiuson an element, while earlier Firefox versions require-moz-border-radius. A cssHook can normalize these vendor-prefixed properties to let.css()accept a single, standard property name (border-radius, or with DOM property syntax,borderRadius).In addition to providing fine-grained control over how specific style properties are handled,
$.cssHooksalso extends the set of properties available to the.animate()method.Defining a new cssHook is straight-forward. The skeleton template below can serve as a guide to creating your own.
(function($) { // first, check to see if cssHooks are supported if ( !$.cssHooks ) { // if not, output an error message throw("jQuery 1.4.3 or above is required for this plugin to work"); return; } $.cssHooks["someCSSProp"] = { get: function( elem, computed, extra ) { // handle getting the CSS property }, set: function( elem, value ) { // handle setting the CSS value } }; })(jQuery);Feature Testing
Before normalizing a vendor-specific CSS property, first determine whether the browser supports the standard property or a vendor-prefixed variation. For example, to check for support of the
border-radiusproperty, see if any variation is a member of a temporary element'sstyleobject.(function($) { function styleSupport( prop ) { var vendorProp, supportedProp, // capitalize first character of the prop to test vendor prefix capProp = prop.charAt(0).toUpperCase() + prop.slice(1), prefixes = [ "Moz", "Webkit", "O", "ms" ], div = document.createElement( "div" ); if ( prop in div.style ) { // browser supports standard CSS property name supportedProp = prop; } else { // otherwise test support for vendor-prefixed property names for ( var i = 0; i < prefixes.length; i++ ) { vendorProp = prefixes[i] + capProp; if ( vendorProp in div.style ) { supportedProp = vendorProp; break; } } } // avoid memory leak in IE div = null; // add property to $.support so it can be accessed elsewhere $.support[ prop ] = supportedProp; return supportedProp; } // call the function, e.g. testing for "border-radius" support: styleSupport( "borderRadius" ); })(jQuery);Defining a complete cssHook
To define a complete cssHook, combine the support test with a filled-out version of the skeleton template provided in the first example:
(function($) { if ( !$.cssHooks ) { throw("jQuery 1.4.3+ is needed for this plugin to work"); return; } function styleSupport( prop ) { var vendorProp, supportedProp, capProp = prop.charAt(0).toUpperCase() + prop.slice(1), prefixes = [ "Moz", "Webkit", "O", "ms" ], div = document.createElement( "div" ); if ( prop in div.style ) { supportedProp = prop; } else { for ( var i = 0; i < prefixes.length; i++ ) { vendorProp = prefixes[i] + capProp; if ( vendorProp in div.style ) { supportedProp = vendorProp; break; } } } div = null; $.support[ prop ] = supportedProp return supportedProp; } var borderRadius = styleSupport( "borderRadius" ); // Set cssHooks only for browsers that // support a vendor-prefixed border radius if ( borderRadius && borderRadius !== "borderRadius" ) { $.cssHook.borderRadius = { get: function( elem, computed, extra ) { return $.css( elem, borderRadius ); }, set: function( elem, value) { elem.style[ borderRadius ] = value; } }; } })(jQuery);You can then set the border radius in a supported browser using either the DOM (camelCased) style or the CSS (hyphenated) style:
$("#element").css("borderRadius", "10px"); $("#another").css("border-radius", "20px");If the browser lacks support for any form of the CSS property, vendor-prefixed or not, the style is not applied to the element. However, if the browser supports a proprietary alternative, it can be applied to the cssHooks instead.
(function($) { // feature test for support of a CSS property // and a proprietary alternative // ... if ( $.support.someCSSProp && $.support.someCSSProp !== "someCSSProp" ) { // Set cssHooks for browsers that // support only a vendor-prefixed someCSSProp $.cssHook.someCSSProp = { get: function( elem, computed, extra ) { return $.css( elem, $.support.someCSSProp ); }, set: function( elem, value) { elem.style[ $.support.someCSSProp ] = value; } }; } else if ( supportsProprietaryAlternative ) { $.cssHook.someCSSProp = { get: function( elem, computed, extra ) { // Handle crazy conversion from the proprietary alternative }, set: function( elem, value ) { // Handle crazy conversion to the proprietary alternative } } } })(jQuery);Special units
By default, jQuery adds a "px" unit to the values passed to the
.css()method. This behavior can be prevented by adding the property to thejQuery.cssNumberobject$.cssNumber["someCSSProp"] = true;
Animating with cssHooks
A cssHook can also hook into jQuery's animation mechanism by adding a property to the
jQuery.fx.stepobject:$.fx.step["someCSSProp"] = function(fx){ $.cssHooks["someCSSProp"].set( fx.elem, fx.now + fx.unit ); };Note that this works best for simple numeric-value animations. More custom code may be required depending on the CSS property, the type of value it returns, and the animation's complexity.
- jQuery.parseXML
-
Signature
-
jQuery.parseXML(String) returns XMLDocument
-
String data :
a well-formed XML string to be parsed
-
String data :
Description
Parses a string into an XML document. jQuery.parseXMLuses the native parsing function of the browser to create a valid XML Document. This document can then be passed tojQueryto create a typical jQuery object that can be traversed and manipulated. -
- jQuery.when
-
Signature
-
jQuery.when(Deferred) returns Promise
-
Deferred deferreds :
One or more Deferred objects, or plain JavaScript objects.
-
Deferred deferreds :
Description
Provides a way to execute callback functions based on one or more objects, usually Deferred objects that represent asynchronous events. If a single Deferred is passed to
jQuery.when, its Promise object (a subset of the Deferred methods) is returned by the method. Additional methods of the Promise object can be called to attach callbacks, such asdeferred.then. When the Deferred is resolved or rejected, usually by the code that created the Deferred originally, the appropriate callbacks will be called. For example, the jqXHR object returned byjQuery.ajaxis a Deferred and can be used this way:$.when( $.ajax("test.aspx") ).then(function(ajaxArgs){ alert(ajaxArgs[1]); /* ajaxArgs is [ "success", statusText, jqXHR ] */ });If a single argument is passed to
jQuery.whenand it is not a Deferred, it will be treated as a resolved Deferred and any doneCallbacks attached will be executed immediately. The doneCallbacks are passed the original argument. In this case any failCallbacks you might set are never called since the Deferred is never rejected. For example:$.when( { testing: 123 } ).done( function(x){ alert(x.testing); } /* alerts "123" */ );In the case where multiple Deferred objects are passed to
jQuery.when, the method returns the Promise from a new "master" Deferred object that tracks the aggregate state of all the Deferreds it has been passed. The method will resolve its master Deferred as soon as all the Deferreds resolve, or reject the master Deferred as soon as one of the Deferreds is rejected. If the master Deferred is resolved, it is passed the resolved values of all the Deferreds that were passed tojQuery.when. For example, when the Deferreds arejQuery.ajax()requests, the arguments will be the jqXHR objects for the requests, in the order they were given in the argument list.In the multiple-Deferreds case where one of the Deferreds is rejected,
jQuery.whenimmediately fires the failCallbacks for its master Deferred. Note that some of the Deferreds may still be unresolved at that point. If you need to perform additional processing for this case, such as canceling any unfinished ajax requests, you can keep references to the underlying jqXHR objects in a closure and inspect/cancel them in the failCallback. -
- deferred.resolveWith
-
Signature
-
deferred.resolveWith(Object, [ Array ]) returns Deferred
-
Object context :
Context passed to the doneCallbacks as the thisobject. -
Array args :
An optional array of arguments that are passed to the doneCallbacks.
-
Object context :
Description
Resolve a Deferred object and call any doneCallbacks with the given contextandargs.Normally, only the creator of a Deferred should call this method; you can prevent other code from changing the Deferred's state by returning a restricted Promise object through
deferred.promise().When the Deferred is resolved, any doneCallbacks added by
deferred.thenordeferred.doneare called. Callbacks are executed in the order they were added. Each callback is passed theargsfrom the.resolve(). Any doneCallbacks added after the Deferred enters the resolved state are executed immediately when they are added, using the arguments that were passed to the.resolve()call. For more information, see the documentation for Deferred object. -
- deferred.rejectWith
-
Signature
-
deferred.rejectWith(Object, [ Array ]) returns Deferred
-
Object context :
Context passed to the failCallbacks as the thisobject. -
Array args :
An optional array of arguments that are passed to the failCallbacks.
-
Object context :
Description
Reject a Deferred object and call any failCallbacks with the given contextandargs.Normally, only the creator of a Deferred should call this method; you can prevent other code from changing the Deferred's state by returning a restricted Promise object through
deferred.promise().When the Deferred is rejected, any failCallbacks added by
deferred.thenordeferred.failare called. Callbacks are executed in the order they were added. Each callback is passed theargsfrom thedeferred.reject()call. Any failCallbacks added after the Deferred enters the rejected state are executed immediately when they are added, using the arguments that were passed to the.reject()call. For more information, see the documentation for Deferred object. -
- deferred.fail
-
Signature
-
deferred.fail(Function, [ Function ]) returns Deferred
-
Function failCallbacks :
A function, or array of functions, that are called when the Deferred is rejected. -
Function failCallbacks :
Optional additional functions, or arrays of functions, that are called when the Deferred is rejected.
-
Function failCallbacks :
Description
Add handlers to be called when the Deferred object is rejected. The
deferred.fail()method accepts one or more arguments, all of which can be either a single function or an array of functions. When the Deferred is rejected, the failCallbacks are called. Callbacks are executed in the order they were added. Sincedeferred.fail()returns the deferred object, other methods of the deferred object can be chained to this one, including additionaldeferred.fail()methods. The failCallbacks are executed using the arguments provided to thedeferred.reject()ordeferred.rejectWith()method call in the order they were added. For more information, see the documentation for Deferred object. -
- deferred.done
-
Signature
-
deferred.done(Function, [ Function ]) returns Deferred
-
Function doneCallbacks :
A function, or array of functions, that are called when the Deferred is resolved. -
Function doneCallbacks :
Optional additional functions, or arrays of functions, that are called when the Deferred is resolved.
-
Function doneCallbacks :
Description
Add handlers to be called when the Deferred object is resolved. The
deferred.done()method accepts one or more arguments, all of which can be either a single function or an array of functions. When the Deferred is resolved, the doneCallbacks are called. Callbacks are executed in the order they were added. Sincedeferred.done()returns the deferred object, other methods of the deferred object can be chained to this one, including additional.done()methods. When the Deferred is resolved, doneCallbacks are executed using the arguments provided to theresolveorresolveWithmethod call in the order they were added. For more information, see the documentation for Deferred object. -
- deferred.then
-
Signatures
-
deferred.then(Function, Function) returns Deferred
-
Function doneCallbacks :
A function, or array of functions, called when the Deferred is resolved. -
Function failCallbacks :
A function, or array of functions, called when the Deferred is rejected.
-
Function doneCallbacks :
-
deferred.then(Function, Function, [ Function ]) returns Deferred
-
Function doneCallbacks :
A function, or array of functions, called when the Deferred is resolved. -
Function failCallbacks :
A function, or array of functions, called when the Deferred is rejected. -
Function progressCallbacks :
A function, or array of functions, called when the Deferred notifies progress.
-
Function doneCallbacks :
Description
Add handlers to be called when the Deferred object is resolved or rejected. All three arguments (including progressCallbacks, as of jQuery 1.7) can be either a single function or an array of functions. The arguments can also be
nullif no callback of that type is desired. Alternatively, use.done(),.fail()or.progress()to set only one type of callback.When the Deferred is resolved, the doneCallbacks are called. If the Deferred is instead rejected, the failCallbacks are called. As of jQuery 1.7, the
deferred.notify()ordeferred.notifyWith()methods can be called to invoke the progressCallbacks as many times as desired before the Deferred is resolved or rejected.Callbacks are executed in the order they were added. Since
deferred.thenreturns the deferred object, other methods of the deferred object can be chained to this one, including additional.then()methods. For more information, see the documentation for Deferred object. -
- deferred.reject
-
Signature
-
deferred.reject(Object) returns Deferred
-
Object args :
Optional arguments that are passed to the failCallbacks.
-
Object args :
Description
Reject a Deferred object and call any failCallbacks with the given args.Normally, only the creator of a Deferred should call this method; you can prevent other code from changing the Deferred's state by returning a restricted Promise object through
deferred.promise().When the Deferred is rejected, any failCallbacks added by
deferred.thenordeferred.failare called. Callbacks are executed in the order they were added. Each callback is passed theargsfrom thedeferred.reject()call. Any failCallbacks added after the Deferred enters the rejected state are executed immediately when they are added, using the arguments that were passed to the.reject()call. For more information, see the documentation for Deferred object. -
- deferred.isRejected
-
Signature
-
deferred.isRejected() returns Boolean
Description
Determine whether a Deferred object has been rejected. As of jQuery 1.7 this API has been deprecated; please use
deferred.state()instead.Returns
trueif the Deferred object is in the rejected state, meaning that eitherdeferred.reject()ordeferred.rejectWith()has been called for the object and the failCallbacks have been called (or are in the process of being called).Note that a Deferred object can be in one of three states: pending, resolved, or rejected; use
deferred.isResolved()to determine whether the Deferred object is in the resolved state. These methods are primarily useful for debugging, for example to determine whether a Deferred has already been resolved even though you are inside code that intended to reject it. -
- deferred.isResolved
-
Signature
-
deferred.isResolved() returns Boolean
Description
Determine whether a Deferred object has been resolved. As of jQuery 1.7 this API has been deprecated; please use
deferred.state()instead.Returns
trueif the Deferred object is in the resolved state, meaning that eitherdeferred.resolve()ordeferred.resolveWith()has been called for the object and the doneCallbacks have been called (or are in the process of being called).Note that a Deferred object can be in one of three states: pending, resolved, or rejected; use
deferred.isRejected()to determine whether the Deferred object is in the rejected state. These methods are primarily useful for debugging, for example to determine whether a Deferred has already been resolved even though you are inside code that intended to reject it. -
- deferred.resolve
-
Signature
-
deferred.resolve(Object) returns Deferred
-
Object args :
Optional arguments that are passed to the doneCallbacks.
-
Object args :
Description
Resolve a Deferred object and call any doneCallbacks with the given args.When the Deferred is resolved, any doneCallbacks added by
deferred.thenordeferred.doneare called. Callbacks are executed in the order they were added. Each callback is passed theargsfrom the.resolve(). Any doneCallbacks added after the Deferred enters the resolved state are executed immediately when they are added, using the arguments that were passed to the.resolve()call. For more information, see the documentation for Deferred object. -
- jQuery.sub
-
Signature
-
jQuery.sub() returns jQuery
Description
Creates a new copy of jQuery whose properties and methods can be modified without affecting the original jQuery object. There are two specific use cases for which jQuery.sub() was created. The first was for providing a painless way of overriding jQuery methods without completely destroying the original methods and another was for helping to do encapsulation and basic namespacing for jQuery plugins.
Note that jQuery.sub() doesn't attempt to do any sort of isolation - that's not its intention. All the methods on the sub'd version of jQuery will still point to the original jQuery (events bound and triggered will still be through the main jQuery, data will be bound to elements through the main jQuery, Ajax queries and events will run through the main jQuery, etc.).
Note that if you're looking to use this for plugin development you should first strongly consider using something like the jQuery UI widget factory which manages both state and plugin sub-methods. Some examples of using the jQuery UI widget factory to build a plugin.
The particular use cases of this method can be best described through some examples.
-
- fadeToggle
-
Signature
-
fadeToggle([ String,Number ], [ String ], [ Function ]) returns jQuery
-
String,Number duration :
A string or number determining how long the animation will run. -
String easing :
A string indicating which easing function to use for the transition. -
Function callback :
A function to call once the animation is complete.
-
String,Number duration :
Description
Display or hide the matched elements by animating their opacity. The
.fadeToggle()method animates the opacity of the matched elements. When called on a visible element, the element'sdisplaystyle property is set tononeonce the opacity reaches 0, so the element no longer affects the layout of the page.Durations are given in milliseconds; higher values indicate slower animations, not faster ones. The strings
'fast'and'slow'can be supplied to indicate durations of200and600milliseconds, respectively.Easing
The string representing an easing function specifies the speed at which the animation progresses at different points within the animation. The only easing implementations in the jQuery library are the default, called
swing, and one that progresses at a constant pace, calledlinear. More easing functions are available with the use of plug-ins, most notably the jQuery UI suite.Callback Function
If supplied, the callback is fired once the animation is complete. This can be useful for stringing different animations together in sequence. The callback is not sent any arguments, but
thisis set to the DOM element being animated. If multiple elements are animated, it is important to note that the callback is executed once per matched element, not once for the animation as a whole.As of jQuery 1.6, the
.promise()method can be used in conjunction with thedeferred.done()method to execute a single callback for the animation as a whole when all matching elements have completed their animations ( See the example for .promise() ). -
- jQuery.type
-
Signature
-
jQuery.type(Object) returns String
-
Object obj :
Object to get the internal JavaScript [[Class]] of.
-
Object obj :
Description
Determine the internal JavaScript [[Class]] of an object. A number of techniques are used to determine the exact return value for an object. The [[Class]] is determined as follows:
- If the object is undefined or null, then "undefined" or "null" is returned accordingly.
- If the object has an internal [[Class]] equivalent to one of the browser's built-in objects, the associated name is returned. (More details about this technique.)
- jQuery.type(true) === "boolean"
- jQuery.type(3) === "number"
- jQuery.type("test") === "string"
- jQuery.type(function(){}) === "function"
- jQuery.type([]) === "array"
- jQuery.type(new Date()) === "date"
- jQuery.type(/test/) === "regexp"
- Everything else returns "object" as its type.
-
- jQuery.isWindow
-
Signature
-
jQuery.isWindow(Object) returns boolean
-
Object obj :
Object to test whether or not it is a window.
-
Object obj :
Description
Determine whether the argument is a window. This is used in a number of places in jQuery to determine if we're operating against a browser window (such as the current window or an iframe).
-
- toggle
-
Signature
-
toggle(Function, Function, [ Function ]) returns jQuery
-
Function handler(eventObject) :
A function to execute every even time the element is clicked. -
Function handler(eventObject) :
A function to execute every odd time the element is clicked. -
Function handler(eventObject) :
Additional handlers to cycle through after clicks.
-
Function handler(eventObject) :
Description
Bind two or more handlers to the matched elements, to be executed on alternate clicks. The
.toggle()method binds a handler for theclickevent, so the rules outlined for the triggering ofclickapply here as well.For example, consider the HTML: <div id="target"> Click here </div>
Event handlers can then be bound to the
<div>:$('#target').toggle(function() { alert('First handler for .toggle() called.'); }, function() { alert('Second handler for .toggle() called.'); });As the element is clicked repeatedly, the messages alternate:
First handler for .toggle() called.
Second handler for .toggle() called.
First handler for .toggle() called.
Second handler for .toggle() called.
First handler for .toggle() called.If more than two handlers are provided,
.toggle()will cycle among all of them. For example, if there are three handlers, then the first handler will be called on the first click, the fourth click, the seventh click, and so on.Note: jQuery also provides an animation method named .toggle() that toggles the visibility of elements. Whether the animation or the event method is fired depends on the set of arguments passed.
The
.toggle()method is provided for convenience. It is relatively straightforward to implement the same behavior by hand, and this can be necessary if the assumptions built into.toggle()prove limiting. For example,.toggle()is not guaranteed to work correctly if applied twice to the same element. Since.toggle()internally uses aclickhandler to do its work, we must unbindclickto remove a behavior attached with.toggle(), so otherclickhandlers can be caught in the crossfire. The implementation also calls.preventDefault()on the event, so links will not be followed and buttons will not be clicked if.toggle()has been called on the element. -
- jQuery.fx.interval
-
Description
The rate (in milliseconds) at which animations fire. This property can be manipulated to adjust the number of frames per second at which animations will run. The default is 13 milliseconds. Making this a lower number could make the animations run smoother in faster browsers (such as Chrome) but there may be performance and CPU implications of doing so.
Since jQuery uses one global interval, no animation should be running or all animations should stop for the change of this property to take effect.
Note:
jQuery.fx.intervalcurrently has no effect in browsers that support therequestAnimationFrameproperty, such as Google Chrome 11. This behavior is subject to change in a future release.
- event.namespace
-
Description
The namespace specified when the event was triggered. This will likely be used primarily by plugin authors who wish to handle tasks differently depending on the event namespace used.
- undelegate
-
Signatures
-
undelegate() returns jQuery
-
undelegate(String, String) returns jQuery
-
String selector :
A selector which will be used to filter the event results. -
String eventType :
A string containing a JavaScript event type, such as "click" or "keydown"
-
String selector :
-
undelegate(String, String, Function) returns jQuery
-
String selector :
A selector which will be used to filter the event results. -
String eventType :
A string containing a JavaScript event type, such as "click" or "keydown" -
Function handler :
A function to execute at the time the event is triggered.
-
String selector :
-
undelegate(String, Map) returns jQuery
-
String selector :
A selector which will be used to filter the event results. -
Map events :
A map of one or more event types and previously bound functions to unbind from them.
-
String selector :
-
undelegate(String) returns jQuery
-
String namespace :
A string containing a namespace to unbind all events from.
-
String namespace :
Description
Remove a handler from the event for all elements which match the current selector, based upon a specific set of root elements. The
.undelegate()method is a way of removing event handlers that have been bound using.delegate(). As of jQuery 1.7, the.on()and.off()methods are preferred for attaching and removing event handlers. -
- delegate
-
Signatures
-
delegate(String, String, Function) returns jQuery
-
String selector :
A selector to filter the elements that trigger the event. -
String eventType :
A string containing one or more space-separated JavaScript event types, such as "click" or "keydown," or custom event names. -
Function handler :
A function to execute at the time the event is triggered.
-
String selector :
-
delegate(String, String, Object, Function) returns jQuery
-
String selector :
A selector to filter the elements that trigger the event. -
String eventType :
A string containing one or more space-separated JavaScript event types, such as "click" or "keydown," or custom event names. -
Object eventData :
A map of data that will be passed to the event handler. -
Function handler :
A function to execute at the time the event is triggered.
-
String selector :
-
delegate(String, Map) returns jQuery
-
String selector :
A selector to filter the elements that trigger the event. -
Map events :
A map of one or more event types and functions to execute for them.
-
String selector :
Description
Attach a handler to one or more events for all elements that match the selector, now or in the future, based on a specific set of root elements. As of jQuery 1.7,
.delegate()has been superseded by the .on() method. For earlier versions, however, it remains the most effective means to use event delegation. More information on event binding and delegation is in the .on() method. In general, these are the equivalent templates for the two methods:$(elements).delegate(selector, events, data, handler); // jQuery 1.4.3+ $(elements).on(events, selector, data, handler); // jQuery 1.7+
For example, the following
.delegate()code:$("table").delegate("td", "click", function(){ $(this).toggleClass("chosen"); });is equivalent to the following code written using
.on():$("table").on("click", "td", function(){ $(this).toggleClass("chosen"); }); });To remove events attached with
delegate(), see the .undelegate() method.Passing and handling event data works the same way as it does for
.on(). -
- jQuery.error
-
Signature
-
jQuery.error(String)
-
String message :
The message to send out.
-
String message :
Description
Takes a string and throws an exception containing it. This method exists primarily for plugin developers who wish to override it and provide a better display (or more information) for the error messages.
-
- jQuery.parseJSON
-
Signature
-
jQuery.parseJSON(String) returns Object
-
String json :
The JSON string to parse.
-
String json :
Description
Takes a well-formed JSON string and returns the resulting JavaScript object. Passing in a malformed JSON string may result in an exception being thrown. For example, the following are all malformed JSON strings:
-
{test: 1}(test does not have double quotes around it). -
{'test': 1}('test' is using single quotes instead of double quotes).
Additionally if you pass in nothing, an empty string, null, or undefined, 'null' will be returned from parseJSON. Where the browser provides a native implementation of
JSON.parse, jQuery uses it to parse the string. For details on the JSON format, see http://json.org/. -
- jQuery.proxy
-
Signatures
-
jQuery.proxy(Function, Object) returns Function
-
Function function :
The function whose context will be changed. -
Object context :
The object to which the context ( this) of the function should be set.
-
Function function :
-
jQuery.proxy(Object, String) returns Function
-
Object context :
The object to which the context of the function should be set. -
String name :
The name of the function whose context will be changed (should be a property of the contextobject).
-
Object context :
Description
Takes a function and returns a new one that will always have a particular context. This method is most useful for attaching event handlers to an element where the context is pointing back to a different object. Additionally, jQuery makes sure that even if you bind the function returned from
jQuery.proxy()it will still unbind the correct function if passed the original.Be aware, however, that jQuery's event binding subsystem assigns a unique id to each event handling function in order to track it when it is used to specify the function to be unbound. The function represented by
jQuery.proxy()is seen as a single function by the event subsystem, even when it is used to bind different contexts. To avoid unbinding the wrong handler, use a unique event namespace for binding and unbinding (e.g.,"click.myproxy1") rather than specifying the proxied function during unbinding. -
- focusout
-
Signatures
-
focusout(Function) returns jQuery
-
Function handler(eventObject) :
A function to execute each time the event is triggered.
-
Function handler(eventObject) :
-
focusout([ Object ], Function) returns jQuery
-
Object eventData :
A map of data that will be passed to the event handler. -
Function handler(eventObject) :
A function to execute each time the event is triggered.
-
Object eventData :
Description
Bind an event handler to the "focusout" JavaScript event. This method is a shortcut for
.bind('focusout', handler).The
focusoutevent is sent to an element when it, or any element inside of it, loses focus. This is distinct from the blur event in that it supports detecting the loss of focus from parent elements (in other words, it supports event bubbling).This event will likely be used together with the focusin event.
-
- focusin
-
Signatures
-
focusin(Function) returns jQuery
-
Function handler(eventObject) :
A function to execute each time the event is triggered.
-
Function handler(eventObject) :
-
focusin([ Object ], Function) returns jQuery
-
Object eventData :
A map of data that will be passed to the event handler. -
Function handler(eventObject) :
A function to execute each time the event is triggered.
-
Object eventData :
Description
Bind an event handler to the "focusin" event. This method is a shortcut for
.bind('focusin', handler).The
focusinevent is sent to an element when it, or any element inside of it, gains focus. This is distinct from the focus event in that it supports detecting the focus event on parent elements (in other words, it supports event bubbling).This event will likely be used together with the focusout event.
-
- has
-
Signatures
-
has(String) returns jQuery
-
String selector :
A string containing a selector expression to match elements against.
-
String selector :
-
has(Element) returns jQuery
-
Element contained :
A DOM element to match elements against.
-
Element contained :
Description
Reduce the set of matched elements to those that have a descendant that matches the selector or DOM element. Given a jQuery object that represents a set of DOM elements, the
.has()method constructs a new jQuery object from a subset of the matching elements. The supplied selector is tested against the descendants of the matching elements; the element will be included in the result if any of its descendant elements matches the selector.Consider a page with a nested list as follows:
<ul> <li>list item 1</li> <li>list item 2 <ul> <li>list item 2-a</li> <li>list item 2-b</li> </ul> </li> <li>list item 3</li> <li>list item 4</li> </ul>We can apply this method to the set of list items as follows:
$('li').has('ul').css('background-color', 'red');The result of this call is a red background for item 2, as it is the only
<li>that has a<ul>among its descendants. -
- jQuery.contains
-
Signature
-
jQuery.contains(Element, Element) returns Boolean
-
Element container :
The DOM element that may contain the other element. -
Element contained :
The DOM element that may be contained by the other element.
-
Element container :
Description
Check to see if a DOM element is within another DOM element. -
- jQuery.noop
-
Signature
-
jQuery.noop() returns Function
Description
An empty function. You can use this empty function when you wish to pass around a function that will do nothing.
This is useful for plugin authors who offer optional callbacks; in the case that no callback is given, something like
jQuery.noopcould execute. -
- delay
-
Signature
-
delay(Integer, [ String ]) returns jQuery
-
Integer duration :
An integer indicating the number of milliseconds to delay execution of the next item in the queue. -
String queueName :
A string containing the name of the queue. Defaults to fx, the standard effects queue.
-
Integer duration :
Description
Set a timer to delay execution of subsequent items in the queue. Added to jQuery in version 1.4, the
.delay()method allows us to delay the execution of functions that follow it in the queue. It can be used with the standard effects queue or with a custom queue. Only subsequent events in a queue are delayed; for example this will not delay the no-arguments forms of.show()or.hide()which do not use the effects queue.Durations are given in milliseconds; higher values indicate slower animations, not faster ones. The strings
'fast'and'slow'can be supplied to indicate durations of 200 and 600 milliseconds, respectively.Using the standard effects queue, we can, for example, set an 800-millisecond delay between the
.slideUp()and.fadeIn()of<div id="foo">:$('#foo').slideUp(300).delay(800).fadeIn(400);When this statement is executed, the element slides up for 300 milliseconds and then pauses for 800 milliseconds before fading in for 400 milliseconds.
The
.delay()method is best for delaying between queued jQuery effects. Because it is limited—it doesn't, for example, offer a way to cancel the delay—.delay()is not a replacement for JavaScript's native setTimeout function, which may be more appropriate for certain use cases. -
- parentsUntil
-
Signatures
-
parentsUntil([ Selector ], [ Selector ]) returns jQuery
-
Selector selector :
A string containing a selector expression to indicate where to stop matching ancestor elements. -
Selector filter :
A string containing a selector expression to match elements against.
-
Selector selector :
-
parentsUntil([ Element ], [ Selector ]) returns jQuery
-
Element element :
A DOM node or jQuery object indicating where to stop matching ancestor elements. -
Selector filter :
A string containing a selector expression to match elements against.
-
Element element :
Description
Get the ancestors of each element in the current set of matched elements, up to but not including the element matched by the selector, DOM node, or jQuery object. Given a selector expression that represents a set of DOM elements, the
.parentsUntil()method traverses through the ancestors of these elements until it reaches an element matched by the selector passed in the method's argument. The resulting jQuery object contains all of the ancestors up to but not including the one matched by the.parentsUntil()selector.If the selector is not matched or is not supplied, all ancestors will be selected; in these cases it selects the same elements as the
.parents()method does when no selector is provided.As of jQuery 1.6, A DOM node or jQuery object, instead of a selector, may be used for the first .parentsUntil() argument.
The method optionally accepts a selector expression for its second argument. If this argument is supplied, the elements will be filtered by testing whether they match it.
-
- prevUntil
-
Signatures
-
prevUntil([ Selector ], [ Selector ]) returns jQuery
-
Selector selector :
A string containing a selector expression to indicate where to stop matching preceding sibling elements. -
Selector filter :
A string containing a selector expression to match elements against.
-
Selector selector :
-
prevUntil([ Element ], [ Selector ]) returns jQuery
-
Element element :
A DOM node or jQuery object indicating where to stop matching preceding sibling elements. -
Selector filter :
A string containing a selector expression to match elements against.
-
Element element :
Description
Get all preceding siblings of each element up to but not including the element matched by the selector, DOM node, or jQuery object. Given a selector expression that represents a set of DOM elements, the
.prevUntil()method searches through the predecessors of these elements in the DOM tree, stopping when it reaches an element matched by the method's argument. The new jQuery object that is returned contains all previous siblings up to but not including the one matched by the.prevUntil()selector; the elements are returned in order from the closest sibling to the farthest.If the selector is not matched or is not supplied, all previous siblings will be selected; in these cases it selects the same elements as the
.prevAll()method does when no filter selector is provided.As of jQuery 1.6, A DOM node or jQuery object, instead of a selector, may be used for the first .prevUntil() argument.
The method optionally accepts a selector expression for its second argument. If this argument is supplied, the elements will be filtered by testing whether they match it.
-
- nextUntil
-
Signatures
-
nextUntil([ Selector ], [ Selector ]) returns jQuery
-
Selector selector :
A string containing a selector expression to indicate where to stop matching following sibling elements. -
Selector filter :
A string containing a selector expression to match elements against.
-
Selector selector :
-
nextUntil([ Element ], [ Selector ]) returns jQuery
-
Element element :
A DOM node or jQuery object indicating where to stop matching following sibling elements. -
Selector filter :
A string containing a selector expression to match elements against.
-
Element element :
Description
Get all following siblings of each element up to but not including the element matched by the selector, DOM node, or jQuery object passed. Given a selector expression that represents a set of DOM elements, the
.nextUntil()method searches through the successors of these elements in the DOM tree, stopping when it reaches an element matched by the method's argument. The new jQuery object that is returned contains all following siblings up to but not including the one matched by the.nextUntil()argument.If the selector is not matched or is not supplied, all following siblings will be selected; in these cases it selects the same elements as the
.nextAll()method does when no filter selector is provided.As of jQuery 1.6, A DOM node or jQuery object, instead of a selector, may be passed to the
.nextUntil()method.The method optionally accepts a selector expression for its second argument. If this argument is supplied, the elements will be filtered by testing whether they match it.
-
- event.isImmediatePropagationStopped
-
Signature
-
event.isImmediatePropagationStopped() returns Boolean
Description
Returns whether event.stopImmediatePropagation() was ever called on this event object. This property was introduced in DOM level 3.
-
- event.stopImmediatePropagation
-
Signature
-
event.stopImmediatePropagation()
Description
Keeps the rest of the handlers from being executed and prevents the event from bubbling up the DOM tree. In addition to keeping any additional handlers on an element from being executed, this method also stops the bubbling by implicitly calling
event.stopPropagation(). To simply prevent the event from bubbling to ancestor elements but allow other event handlers to execute on the same element, we can useevent.stopPropagation()instead.Use
event.isImmediatePropagationStopped()to know whether this method was ever called (on that event object). -
- event.isPropagationStopped
-
Signature
-
event.isPropagationStopped() returns Boolean
Description
Returns whether event.stopPropagation() was ever called on this event object. This event method is described in the W3C DOM Level 3 specification.
-
- event.stopPropagation
-
Signature
-
event.stopPropagation()
Description
Prevents the event from bubbling up the DOM tree, preventing any parent handlers from being notified of the event. We can use
event.isPropagationStopped()to determine if this method was ever called (on that event object).This method works for custom events triggered with trigger(), as well.
Note that this will not prevent other handlers on the same element from running.
-
- event.isDefaultPrevented
-
Signature
-
event.isDefaultPrevented() returns Boolean
-
- event.preventDefault
-
Signature
-
event.preventDefault() returns undefined
Description
If this method is called, the default action of the event will not be triggered. For example, clicked anchors will not take the browser to a new URL. We can use
event.isDefaultPrevented()to determine if this method has been called by an event handler that was triggered by this event. -
- event.timeStamp
-
Description
The difference in milliseconds between the time an event is triggered and January 1, 1970. This property can be useful for profiling the performance of certain jQuery functions by getting the
event.timeStampvalue at two points in the code and noting the difference.
- event.result
-
Description
The last value returned by an event handler that was triggered by this event, unless the value was undefined.This property can be useful for getting previous return values of custom events.
- event.which
-
Description
For key or button events, this attribute indicates the specific button or key that was pressed. event.whichnormalizesevent.keyCodeandevent.charCode. It is recommended to watchevent.whichfor keyboard key input. For more detail, read about event.charCode on the MDC.
- event.pageY
-
Description
The mouse position relative to the top edge of the document.
- event.pageX
-
Description
The mouse position relative to the left edge of the document.
- event.currentTarget
-
Description
The current DOM element within the event bubbling phase. This property will typically be equal to the
thisof the function.If you are using jQuery.proxy or another form of scope manipulation,
thiswill be equal to whatever context you have provided, notevent.currentTarget
- event.data
-
Description
The optional data passed to jQuery.fn.bind when the current executing handler was bound.
- event.target
-
Description
The DOM element that initiated the event. The
targetproperty can be the element that registered for the event or a descendant of it. It is often useful to compareevent.targettothisin order to determine if the event is being handled due to event bubbling. This property is very useful in event delegation, when events bubble.
- event.type
-
Description
Describes the nature of the event.
- jQuery.fx.off
-
Description
Globally disable all animations. When this property is set to
true, all animation methods will immediately set elements to their final state when called, rather than displaying an effect. This may be desirable for a couple reasons:- jQuery is being used on a low-resource device.
- Users are encountering accessibility problems with the animations (see the article Turn Off Animation for more information).
Animations can be turned back on by setting the property to
false.
- each
-
Signature
-
each(Function) returns jQuery
-
Function function(index, Element) :
A function to execute for each matched element.
-
Function function(index, Element) :
Description
Iterate over a jQuery object, executing a function for each matched element. The
.each()method is designed to make DOM looping constructs concise and less error-prone. When called it iterates over the DOM elements that are part of the jQuery object. Each time the callback runs, it is passed the current loop iteration, beginning from 0. More importantly, the callback is fired in the context of the current DOM element, so the keywordthisrefers to the element.Suppose we had a simple unordered list on the page:
<ul> <li>foo</li> <li>bar</li> </ul>We can select the list items and iterate across them:
$('li').each(function(index) { alert(index + ': ' + $(this).text()); });A message is thus alerted for each item in the list:
0: foo
1: barWe can stop the loop from within the callback function by returning
false. -
- pushStack
-
Signatures
-
pushStack(Array) returns jQuery
-
Array elements :
An array of elements to push onto the stack and make into a new jQuery object.
-
Array elements :
-
pushStack(Array, String, Array) returns jQuery
-
Array elements :
An array of elements to push onto the stack and make into a new jQuery object. -
String name :
The name of a jQuery method that generated the array of elements. -
Array arguments :
The arguments that were passed in to the jQuery method (for serialization).
-
Array elements :
Description
Add a collection of DOM elements onto the jQuery stack. -
- jQuery.globalEval
-
Signature
-
jQuery.globalEval(String)
-
String code :
The JavaScript code to execute.
-
String code :
Description
Execute some JavaScript code globally. This method behaves differently from using a normal JavaScript
eval()in that it's executed within the global context (which is important for loading external scripts dynamically). -
- jQuery.isXMLDoc
-
Signature
-
jQuery.isXMLDoc(Element) returns Boolean
-
Element node :
The DOM node that will be checked to see if it's in an XML document.
-
Element node :
Description
Check to see if a DOM node is within an XML document (or is an XML document). -
- jQuery.removeData
-
Signature
-
jQuery.removeData(Element, [ String ]) returns jQuery
-
Element element :
A DOM element from which to remove data. -
String name :
A string naming the piece of data to remove.
-
Element element :
Description
Remove a previously-stored piece of data. Note: This is a low-level method, you should probably use
.removeData()instead.The
jQuery.removeData()method allows us to remove values that were previously set usingjQuery.data(). When called with the name of a key,jQuery.removeData()deletes that particular value; when called with no arguments, all values are removed. -
- jQuery.data
-
Signature
-
jQuery.data(Element, String, Object) returns Object
-
Element element :
The DOM element to associate with the data. -
String key :
A string naming the piece of data to set. -
Object value :
The new data value.
-
Element element :
Description
Store arbitrary data associated with the specified element. Returns the value that was set. Note: This is a low-level method; a more convenient
.data()is also available.The
jQuery.data()method allows us to attach data of any type to DOM elements in a way that is safe from circular references and therefore free from memory leaks. jQuery ensures that the data is removed when DOM elements are removed via jQuery methods, and when the user leaves the page. We can set several distinct values for a single element and retrieve them later:jQuery.data(document.body, 'foo', 52); jQuery.data(document.body, 'bar', 'test');
Note: this method currently does not provide cross-platform support for setting data on XML documents, as Internet Explorer does not allow data to be attached via expando properties.
-
- jQuery.data
-
Signatures
-
jQuery.data(Element, String) returns Object
-
Element element :
The DOM element to query for the data. -
String key :
Name of the data stored.
-
Element element :
-
jQuery.data(Element) returns Object
-
Element element :
The DOM element to query for the data.
-
Element element :
Description
Returns value at named data store for the element, as set by jQuery.data(element, name, value), or the full data store for the element.Note: This is a low-level method; a more convenient
.data()is also available.Regarding HTML5 data-* attributes: This low-level method does NOT retrieve the
data-*attributes unless the more convenient.data()method has already retrieved them.The
jQuery.data()method allows us to attach data of any type to DOM elements in a way that is safe from circular references and therefore from memory leaks. We can retrieve several distinct values for a single element one at a time, or as a set:alert(jQuery.data( document.body, 'foo' )); alert(jQuery.data( document.body ));
The above lines alert the data values that were set on the
bodyelement. If nothing was set on that element, an empty string is returned.Calling
jQuery.data(element)retrieves all of the element's associated values as a JavaScript object. Note that jQuery itself uses this method to store data for internal use, such as event handlers, so do not assume that it contains only data that your own code has stored.Note: this method currently does not provide cross-platform support for setting data on XML documents, as Internet Explorer does not allow data to be attached via expando properties.
-
- jQuery.dequeue
-
Signature
-
jQuery.dequeue(Element, [ String ]) returns jQuery
-
Element element :
A DOM element from which to remove and execute a queued function. -
String queueName :
A string containing the name of the queue. Defaults to fx, the standard effects queue.
-
Element element :
Description
Execute the next function on the queue for the matched element. Note: This is a low-level method, you should probably use
.dequeue()instead.When
jQuery.dequeue()is called, the next function on the queue is removed from the queue, and then executed. This function should in turn (directly or indirectly) causejQuery.dequeue()to be called, so that the sequence can continue. -
- jQuery.queue
-
Signature
-
jQuery.queue(Element, [ String ]) returns Array
-
Element element :
A DOM element to inspect for an attached queue. -
String queueName :
A string containing the name of the queue. Defaults to fx, the standard effects queue.
-
Element element :
Description
Show the queue of functions to be executed on the matched element. Note: This is a low-level method, you should probably use
.queue()instead. -
- jQuery.queue
-
Signatures
-
jQuery.queue(Element, String, Array) returns jQuery
-
Element element :
A DOM element where the array of queued functions is attached. -
String queueName :
A string containing the name of the queue. Defaults to fx, the standard effects queue. -
Array newQueue :
An array of functions to replace the current queue contents.
-
Element element :
-
jQuery.queue(Element, String, Function) returns jQuery
-
Element element :
A DOM element on which to add a queued function. -
String queueName :
A string containing the name of the queue. Defaults to fx, the standard effects queue. -
Function callback() :
The new function to add to the queue.
-
Element element :
Description
Manipulate the queue of functions to be executed on the matched element. Note: This is a low-level method, you should probably use
.queue()instead.Every element can have one or more queues of functions attached to it by jQuery. In most applications, only one queue (called
fx) is used. Queues allow a sequence of actions to be called on an element asynchronously, without halting program execution.The
jQuery.queue()method allows us to directly manipulate this queue of functions. CallingjQuery.queue()with a callback is particularly useful; it allows us to place a new function at the end of the queue.Note that when adding a function with
jQuery.queue(), we should ensure thatjQuery.dequeue()is eventually called so that the next function in line executes. -
- clearQueue
-
Signature
-
clearQueue([ String ]) returns jQuery
-
String queueName :
A string containing the name of the queue. Defaults to fx, the standard effects queue.
-
String queueName :
Description
Remove from the queue all items that have not yet been run. When the
.clearQueue()method is called, all functions on the queue that have not been executed are removed from the queue. When used without an argument,.clearQueue()removes the remaining functions fromfx, the standard effects queue. In this way it is similar to.stop(true). However, while the.stop()method is meant to be used only with animations,.clearQueue()can also be used to remove any function that has been added to a generic jQuery queue with the.queue()method. -
- toArray
-
Signature
-
toArray() returns Array
Description
Retrieve all the DOM elements contained in the jQuery set, as an array. .toArray()returns all of the elements in the jQuery set:alert($('li').toArray());All of the matched DOM nodes are returned by this call, contained in a standard array:
[<li id="foo">, <li id="bar">]
-
- jQuery.isEmptyObject
-
Signature
-
jQuery.isEmptyObject(Object) returns Boolean
-
Object object :
The object that will be checked to see if it's empty.
-
Object object :
Description
Check to see if an object is empty (contains no properties). As of jQuery 1.4 this method checks both properties on the object itself and properties inherited from prototypes (in that it doesn't use hasOwnProperty). The argument should always be a plain JavaScript
Objectas other types of object (DOM elements, primitive strings/numbers, host objects) may not give consistent results across browsers. To determine if an object is a plain JavaScript object, use$.isPlainObject() -
- jQuery.isPlainObject
-
Signature
-
jQuery.isPlainObject(Object) returns Boolean
-
Object object :
The object that will be checked to see if it's a plain object.
-
Object object :
Description
Check to see if an object is a plain object (created using "{}" or "new Object"). Note: Host objects (or objects used by browser host environments to complete the execution environment of ECMAScript) have a number of inconsistencies which are difficult to robustly feature detect cross-platform. As a result of this,
$.isPlainObject()may evaluate inconsistently across browsers in certain instances.An example of this is a test against
document.locationusing$.isPlainObject()as follows:console.log($.isPlainObject(document.location));
which throws an invalid pointer exception in IE8. With this in mind, it's important to be aware of any of the gotchas involved in using
$.isPlainObject()against older browsers. Some basic example of use-cases that do function correctly cross-browser can be found below. -
- keydown
-
Signatures
-
keydown(Function) returns jQuery
-
Function handler(eventObject) :
A function to execute each time the event is triggered.
-
Function handler(eventObject) :
-
keydown([ Object ], Function) returns jQuery
-
Object eventData :
A map of data that will be passed to the event handler. -
Function handler(eventObject) :
A function to execute each time the event is triggered.
-
Object eventData :
-
keydown() returns jQuery
Description
Bind an event handler to the "keydown" JavaScript event, or trigger that event on an element. This method is a shortcut for
.bind('keydown', handler)in the first and second variations, and.trigger('keydown')in the third.The
keydownevent is sent to an element when the user first presses a key on the keyboard. It can be attached to any element, but the event is only sent to the element that has the focus. Focusable elements can vary between browsers, but form elements can always get focus so are reasonable candidates for this event type.For example, consider the HTML:
<form> <input id="target" type="text" value="Hello there" /> </form> <div id="other"> Trigger the handler </div>
The event handler can be bound to the input field:
$('#target').keydown(function() { alert('Handler for .keydown() called.'); });Now when the insertion point is inside the field, pressing a key displays the alert:
Handler for .keydown() called.
To trigger the event manually, apply
.keydown()without an argument:$('#other').click(function() { $('#target').keydown(); });After this code executes, clicks on Trigger the handler will also alert the message.
If key presses anywhere need to be caught (for example, to implement global shortcut keys on a page), it is useful to attach this behavior to the
documentobject. Because of event bubbling, all key presses will make their way up the DOM to thedocumentobject unless explicitly stopped.To determine which key was pressed, examine the event object that is passed to the handler function. While browsers use differing properties to store this information, jQuery normalizes the
.whichproperty so you can reliably use it to retrieve the key code. This code corresponds to a key on the keyboard, including codes for special keys such as arrows. For catching actual text entry,.keypress()may be a better choice. -
- index
-
Signatures
-
index() returns Number
-
index(Selector) returns Number
-
Selector selector :
A selector representing a jQuery collection in which to look for an element.
-
Selector selector :
-
index(Element, jQuery) returns Number
-
Element, jQuery element :
The DOM element or first element within the jQuery object to look for.
-
Element, jQuery element :
Description
Search for a given element from among the matched elements. Return Values
If no argument is passed to the
.index()method, the return value is an integer indicating the position of the first element within the jQuery object relative to its sibling elements.If
.index()is called on a collection of elements and a DOM element or jQuery object is passed in,.index()returns an integer indicating the position of the passed element relative to the original collection.If a selector string is passed as an argument,
.index()returns an integer indicating the position of the original element relative to the elements matched by the selector. If the element is not found,.index()will return -1.Detail
The complementary operation to
.get(), which accepts an index and returns a DOM node,.index()can take a DOM node and returns an index. Suppose we have a simple unordered list on the page:<ul> <li id="foo">foo</li> <li id="bar">bar</li> <li id="baz">baz</li> </ul>
If we retrieve one of the three list items (for example, through a DOM function or as the context to an event handler),
.index()can search for this list item within the set of matched elements:var listItem = document.getElementById('bar'); alert('Index: ' + $('li').index(listItem)); We get back the zero-based position of the list item:Index: 1
Similarly, if we retrieve a jQuery object consisting of one of the three list items,
.index()will search for that list item:var listItem = $('#bar'); alert('Index: ' + $('li').index(listItem));We get back the zero-based position of the list item:
Index: 1
Note that if the jQuery collection used as the
.index()method's argument contains more than one element, the first element within the matched set of elements will be used.var listItems = $('li:gt(0)'); alert('Index: ' + $('li').index(listItems));We get back the zero-based position of the first list item within the matched set:
Index: 1
If we use a string as the
.index()method's argument, it is interpreted as a jQuery selector string. The first element among the object's matched elements which also matches this selector is located.var listItem = $('#bar'); alert('Index: ' + listItem.index('li'));We get back the zero-based position of the list item:
Index: 1
If we omit the argument,
.index()will return the position of the first element within the set of matched elements in relation to its siblings:alert('Index: ' + $('#bar').index();Again, we get back the zero-based position of the list item:
Index: 1
-
- removeData
-
Signatures
-
removeData([ String ]) returns jQuery
-
String name :
A string naming the piece of data to delete.
-
String name :
-
removeData([ Array,String ]) returns jQuery
-
Array,String list :
An array or space-separated string naming the pieces of data to delete.
-
Array,String list :
Description
Remove a previously-stored piece of data. The
.removeData()method allows us to remove values that were previously set using.data(). When called with the name of a key,.removeData()deletes that particular value; when called with no arguments, all values are removed. Removing data from jQuery's internal.data()cache does not effect any HTML5data-attributes in a document; use.removeAttr()to remove those.As of jQuery 1.7, when called with an array of keys or a string of space-separated keys,
.removeData()deletes the value of each key in that array or string.As of jQuery 1.4.3, calling
.removeData()will cause the value of the property being removed to revert to the value of the data attribute of the same name in the DOM, rather than being set toundefined. -
- data
-
Signatures
-
data(String, Object) returns jQuery
-
String key :
A string naming the piece of data to set. -
Object value :
The new data value; it can be any Javascript type including Array or Object.
-
String key :
-
data(Object) returns jQuery
-
Object obj :
An object of key-value pairs of data to update.
-
Object obj :
Description
Store arbitrary data associated with the matched elements. The
.data()method allows us to attach data of any type to DOM elements in a way that is safe from circular references and therefore from memory leaks.We can set several distinct values for a single element and retrieve them later:
$('body').data('foo', 52); $('body').data('bar', { myType: 'test', count: 40 }); $('body').data('foo'); // 52 $('body').data(); // {foo: 52, bar: { myType: 'test', count: 40 }}In jQuery 1.4.3 setting an element's data object with
.data(obj)extends the data previously stored with that element. jQuery itself uses the.data()method to save information under the names 'events' and 'handle', and also reserves any data name starting with an underscore ('_') for internal use.Prior to jQuery 1.4.3 (starting in jQuery 1.4) the .data() method completely replaced all data, instead of just extending the data object. If you are using third-party plugins it may not be advisable to completely replace the element's data object, since plugins may have also set data.
Due to the way browsers interact with plugins and external code, the
.data()method cannot be used on<object>(unless it's a Flash plugin),<applet>or<embed>elements. -
- data
-
Signatures
-
data(String) returns Object
-
String key :
Name of the data stored.
-
String key :
-
data() returns Object
Description
Returns value at named data store for the first element in the jQuery collection, as set by data(name, value). The
.data()method allows us to attach data of any type to DOM elements in a way that is safe from circular references and therefore from memory leaks. We can retrieve several distinct values for a single element one at a time, or as a set:alert($('body').data('foo')); alert($('body').data());The above lines alert the data values that were set on the
bodyelement. If no data at all was set on that element,undefinedis returned.alert( $("body").data("foo")); //undefined $("body").data("bar", "foobar"); alert( $("body").data("bar")); //foobarHTML 5 data- Attributes
As of jQuery 1.4.3 HTML 5 data- attributes will be automatically pulled in to jQuery's data object. The treatment of attributes with embedded dashes was changed in jQuery 1.6 to conform to the W3C HTML5 specification.
For example, given the following HTML:
<div data-role="page" data-last-value="43" data-hidden="true" data-options='{"name":"John"}'></div>All of the following jQuery code will work.
$("div").data("role") === "page"; $("div").data("lastValue") === 43; $("div").data("hidden") === true; $("div").data("options").name === "John";Every attempt is made to convert the string to a JavaScript value (this includes booleans, numbers, objects, arrays, and null) otherwise it is left as a string. To retrieve the value's attribute as a string without any attempt to convert it, use the
attr()method. When the data attribute is an object (starts with '{') or array (starts with '[') thenjQuery.parseJSONis used to parse the string; it must follow valid JSON syntax including quoted property names. The data- attributes are pulled in the first time the data property is accessed and then are no longer accessed or mutated (all data values are then stored internally in jQuery).Calling
.data()with no parameters retrieves all of the values as a JavaScript object. This object can be safely cached in a variable as long as a new object is not set with.data(obj). Using the object directly to get or set values is faster than making individual calls to.data()to get or set each value:var mydata = $("#mydiv").data(); if ( mydata.count < 9 ) { mydata.count = 43; mydata.status = "embiggened"; } -
- get
-
Signature
-
get([ Number ]) returns Element, Array
-
Number index :
A zero-based integer indicating which element to retrieve.
-
Number index :
Description
Retrieve the DOM elements matched by the jQuery object. The
.get()method grants us access to the DOM nodes underlying each jQuery object. Suppose we had a simple unordered list on the page:<ul> <li id="foo">foo</li> <li id="bar">bar</li> </ul>
Without a parameter,
.get()returns all of the elements:alert($('li').get());All of the matched DOM nodes are returned by this call, contained in a standard array:
[<li id="foo">, <li id="bar">]
With an index specified, .get() will retrieve a single element:
($('li').get(0));Since the index is zero-based, the first list item is returned:
<li id="foo">
Each jQuery object also masquerades as an array, so we can use the array dereferencing operator to get at the list item instead:
alert($('li')[0]);However, this syntax lacks some of the additional capabilities of .get(), such as specifying a negative index:
alert($('li').get(-1));A negative index is counted from the end of the matched set, so this example will return the last item in the list:
<li id="bar">
-
- size
-
Signature
-
size() returns Number
Description
Return the number of elements in the jQuery object. The
.size()method is functionally equivalent to the.lengthproperty; however, the.lengthproperty is preferred because it does not have the overhead of a function call.Given a simple unordered list on the page:
<ul> <li>foo</li> <li>bar</li> </ul>
Both
.size()and.lengthidentify the number of items:alert( "Size: " + $("li").size() ); alert( "Size: " + $("li").length );This results in two alerts:
Size: 2
Size: 2
-
- jQuery.noConflict
-
Signature
-
jQuery.noConflict([ Boolean ]) returns Object
-
Boolean removeAll :
A Boolean indicating whether to remove all jQuery variables from the global scope (including jQuery itself).
-
Boolean removeAll :
Description
Relinquish jQuery's control of the $variable.Many JavaScript libraries use
$as a function or variable name, just as jQuery does. In jQuery's case,$is just an alias forjQuery, so all functionality is available without using$. If we need to use another JavaScript library alongside jQuery, we can return control of$back to the other library with a call to$.noConflict():<script type="text/javascript" src="other_lib.js"></script> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript"> $.noConflict(); // Code that uses other library's $ can follow here. </script>
This technique is especially effective in conjunction with the .ready() method's ability to alias the jQuery object, as within callback passed to .ready() we can use $ if we wish without fear of conflicts later:
<script type="text/javascript" src="other_lib.js"></script> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript"> $.noConflict(); jQuery(document).ready(function($) { // Code that uses jQuery's $ can follow here. }); // Code that uses other library's $ can follow here. </script>If necessary, we can free up the
jQueryname as well by passingtrueas an argument to the method. This is rarely necessary, and if we must do this (for example, if we need to use multiple versions of thejQuerylibrary on the same page), we need to consider that most plug-ins rely on the presence of the jQuery variable and may not operate correctly in this situation. -
- :selected
-
Description
Selects all elements that are selected. The
:selectedselector works for<option>elements. It does not work for checkboxes or radio inputs; use:checkedfor them.
- :checked
-
Description
Matches all elements that are checked. The
:checkedselector works for checkboxes and radio buttons. For select elements, use the:selectedselector.
- :disabled
-
Description
Selects all elements that are disabled. As with other pseudo-class selectors (those that begin with a ":") it is recommended to precede it with a tag name or some other selector; otherwise, the universal selector ("*") is implied. In other words, the bare
$(':disabled')is equivalent to$('*:disabled'), so$('input:disabled')should be used instead.
- :enabled
-
Description
Selects all elements that are enabled. As with other pseudo-class selectors (those that begin with a ":") it is recommended to precede it with a tag name or some other selector; otherwise, the universal selector ("*") is implied. In other words, the bare
$(':enabled')is equivalent to$('*:enabled'), so$('input:enabled')should be used instead.
- :file
-
Description
Selects all elements of type file. :fileis equivalent to[type="file"]. As with other pseudo-class selectors (those that begin with a ":") it is recommended to precede it with a tag name or some other selector; otherwise, the universal selector ("*") is implied. In other words, the bare$(':file')is equivalent to$('*:file'), so$('input:file')should be used instead.
- :button
-
Description
Selects all button elements and elements of type button.
- :reset
-
Description
Selects all elements of type reset. :resetis equivalent to[type="reset"]
- :image
-
Description
Selects all elements of type image. :imageis equivalent to[type="image"]
- :submit
-
Description
Selects all elements of type submit. The
:submitselector typically applies to button or input elements. Note that some browsers treat<button>element astype="default"implicitly while others (such as Internet Explorer) do not.
- :checkbox
-
Description
Selects all elements of type checkbox. $(':checkbox')is equivalent to$('[type=checkbox]'). As with other pseudo-class selectors (those that begin with a ":") it is recommended to precede it with a tag name or some other selector; otherwise, the universal selector ("*") is implied. In other words, the bare$(':checkbox')is equivalent to$('*:checkbox'), so$('input:checkbox')should be used instead.
- :radio
-
Description
Selects all elements of type radio. $(':radio')is equivalent to$('[type=radio]'). As with other pseudo-class selectors (those that begin with a ":") it is recommended to precede it with a tag name or some other selector; otherwise, the universal selector ("*") is implied. In other words, the bare$(':radio')is equivalent to$('*:radio'), so$('input:radio')should be used instead.To select a set of associated radio buttons, you might use:
$('input[name=gender]:radio')
- :password
-
Description
Selects all elements of type password. $(':password')is equivalent to$('[type=password]'). As with other pseudo-class selectors (those that begin with a ":") it is recommended to precede it with a tag name or some other selector; otherwise, the universal selector ("*") is implied. In other words, the bare$(':password')is equivalent to$('*:password'), so$('input:password')should be used instead.
- :text
-
Description
Selects all elements of type text. $(':text')is equivalent to$('[type=text]')and thus selects all<input type="text">elements. As with other pseudo-class selectors (those that begin with a ":") it is recommended to precede it with a tag name or some other selector; otherwise, the universal selector ("*") is implied. In other words, the bare$(':text')is equivalent to$('*:text'), so$('input:text')should be used instead.Note: As of jQuery 1.5.2,
:textselectsinputelements that have no specifiedtypeattribute (in which casetype="text"is implied).
- :input
-
Description
Selects all input, textarea, select and button elements. The
:inputselector basically selects all form controls.
- :only-child
-
Description
Selects all elements that are the only child of their parent. If the parent has other child elements, nothing is matched.
- :last-child
-
Description
Selects all elements that are the last child of their parent. While :last matches only a single element,
:last-childcan match more than one: one for each parent.
- :first-child
-
Description
Selects all elements that are the first child of their parent. While :first matches only a single element, the
:first-childselector can match more than one: one for each parent. This is equivalent to:nth-child(1).
- :nth-child(index/even/odd/equation)
-
Description
Selects all elements that are the nth-child of their parent. Because jQuery's implementation of
:nth-child(n)is strictly derived from the CSS specification, the value ofnis "1-indexed", meaning that the counting starts at 1. For all other selector expressions, however, jQuery follows JavaScript's "0-indexed" counting. Therefore, given a single<ul>containing two<li>s,$('li:nth-child(1)')selects the first<li>while$('li:eq(1)')selects the second.The
:nth-child(n)pseudo-class is easily confused with:eq(n), even though the two can result in dramatically different matched elements. With:nth-child(n), all children are counted, regardless of what they are, and the specified element is selected only if it matches the selector attached to the pseudo-class. With:eq(n)only the selector attached to the pseudo-class is counted, not limited to children of any other element, and the (n+1)th one (n is 0-based) is selected.Further discussion of this unusual usage can be found in the W3C CSS specification.
- [attribute|="value"]
-
Description
Selects elements that have the specified attribute with a value either equal to a given string or starting with that string followed by a hyphen (-). This selector was introduced into the CSS specification to handle language attributes.
- [attribute~="value"]
-
Description
Selects elements that have the specified attribute with a value containing a given word, delimited by spaces. This selector matches the test string against each word in the attribute value, where a "word" is defined as a string delimited by whitespace. The selector matches if the test string is exactly equal to any of the words.
- [attributeFilter1][attributeFilter2][attributeFilterN]
-
Description
Matches elements that match all of the specified attribute filters.
- [attribute*="value"]
-
Description
Selects elements that have the specified attribute with a value containing the a given substring. This is the most generous of the jQuery attribute selectors that match against a value. It will select an element if the selector's string appears anywhere within the element's attribute value. Compare this selector with the Attribute Contains Word selector (e.g. [attr~="word"]), which is more appropriate in many cases.
- [attribute$="value"]
-
Description
Selects elements that have the specified attribute with a value ending exactly with a given string. The comparison is case sensitive.
- [attribute^="value"]
-
Description
Selects elements that have the specified attribute with a value beginning exactly with a given string. This selector can be useful for identifying elements in pages produced by server-side frameworks that produce HTML with systematic element IDs. However it will be slower than using a class selector so leverage classes, if you can, to group like elements.
- [attribute!="value"]
-
Description
Select elements that either don't have the specified attribute, or do have the specified attribute but not with a certain value. This selector is equivalent to
:not([attr="value"]).
- [attribute="value"]
-
Description
Selects elements that have the specified attribute with a value exactly equal to a certain value.
- [attribute]
-
Description
Selects elements that have the specified attribute, with any value.
- :visible
-
Description
Selects all elements that are visible. Elements can be considered hidden for several reasons:
- They have a CSS
displayvalue ofnone. - They are form elements with
type="hidden". - Their width and height are explicitly set to 0.
- An ancestor element is hidden, so the element is not shown on the page.
Elements with
visibility: hiddenoropacity: 0are considered to be visible, since they still consume space in the layout. During animations that hide an element, the element is considered to be visible until the end of the animation. During animations to show an element, the element is considered to be visible at the start at the animation.How
:visibleis calculated was changed in jQuery 1.3.2. The release notes outline the changes in more detail. - They have a CSS
- :parent
-
Description
Select all elements that are the parent of another element, including text nodes. This is the inverse of
:empty.One important thing to note regarding the use of
:parent(and:empty) is that child elements include text nodes.The W3C recommends that the
<p>element have at least one child node, even if that child is merely text (see http://www.w3.org/TR/html401/struct/text.html#edef-P). Some other elements, on the other hand, are empty (i.e. have no children) by definition:<input>,<img>,<br>, and<hr>, for example.
- :has(selector)
-
Description
Selects elements which contain at least one element that matches the specified selector. The expression
$('div:has(p)')matches a<div>if a<p>exists anywhere among its descendants, not just as a direct child.
- :empty
-
Description
Select all elements that have no children (including text nodes). This is the inverse of
:parent.One important thing to note with :empty (and :parent) is that child elements include text nodes.
The W3C recommends that the
<p>element have at least one child node, even if that child is merely text (see http://www.w3.org/TR/html401/struct/text.html#edef-P). Some other elements, on the other hand, are empty (i.e. have no children) by definition: <input>, <img>, <br>, and <hr>, for example.
- :contains(text)
-
Description
Select all elements that contain the specified text. The matching text can appear directly within the selected element, in any of that element's descendants, or a combination thereof. As with attribute value selectors, text inside the parentheses of
:contains()can be written as bare words or surrounded by quotation marks. The text must have matching case to be selected.
- :animated
-
Description
Select all elements that are in the progress of an animation at the time the selector is run.
- :header
-
Description
Selects all elements that are headers, like h1, h2, h3 and so on.
- :lt(index)
-
Description
Select all elements at an index less than indexwithin the matched set.index-related selectors
The index-related selectors (including this "less than" selector) filter the set of elements that have matched the expressions that precede them. They narrow the set down based on the order of the elements within this matched set. For example, if elements are first selected with a class selector (
.myclass) and four elements are returned, these elements are given indices 0 through 3 for the purposes of these selectors.Note that since JavaScript arrays use 0-based indexing, these selectors reflect that fact. This is why
$('.myclass:lt(1)')selects the first element in the document with the classmyclass, rather than selecting no elements. In contrast,:nth-child(n)uses 1-based indexing to conform to the CSS specification.
- :gt(index)
-
Description
Select all elements at an index greater than indexwithin the matched set.index-related selectors
The index-related selector expressions (including this "greater than" selector) filter the set of elements that have matched the expressions that precede them. They narrow the set down based on the order of the elements within this matched set. For example, if elements are first selected with a class selector (
.myclass) and four elements are returned, these elements are given indices 0 through 3 for the purposes of these selectors.Note that since JavaScript arrays use 0-based indexing, these selectors reflect that fact. This is why
$('.myclass:gt(1)')selects elements after the second element in the document with the classmyclass, rather than after the first. In contrast,:nth-child(n)uses 1-based indexing to conform to the CSS specification.
- :eq(index)
-
Description
Select the element at index nwithin the matched set.The index-related selectors (
:eq(),:lt(),:gt(),:even,:odd) filter the set of elements that have matched the expressions that precede them. They narrow the set down based on the order of the elements within this matched set. For example, if elements are first selected with a class selector (.myclass) and four elements are returned, these elements are given indices0through3for the purposes of these selectors.Note that since JavaScript arrays use 0-based indexing, these selectors reflect that fact. This is why
$('.myclass:eq(1)')selects the second element in the document with the class myclass, rather than the first. In contrast,:nth-child(n)uses 1-based indexing to conform to the CSS specification.Unlike the
.eq(index)method, the:eq(index)selector does not accept a negative value forindex. For example, while$('li').eq(-1)selects the lastlielement,$('li:eq(-1)')selects nothing.
- :odd
-
Description
Selects odd elements, zero-indexed. See also even. In particular, note that the 0-based indexing means that, counter-intuitively,
:oddselects the second element, fourth element, and so on within the matched set.
- :even
-
Description
Selects even elements, zero-indexed. See also odd. In particular, note that the 0-based indexing means that, counter-intuitively,
:evenselects the first element, third element, and so on within the matched set.
- :not(selector)
-
Description
Selects all elements that do not match the given selector. All selectors are accepted inside
:not(), for example::not(div a)and:not(div,a).Additional Notes
The
.not()method will end up providing you with more readable selections than pushing complex selectors or variables into a:not()selector filter. In most cases, it is a better choice.
- :last
-
Description
Selects the last matched element. Note that
:lastselects a single element by filtering the current jQuery collection and matching the last element within it.
- :first
-
Description
Selects the first matched element. The
:firstpseudo-class is equivalent to:eq(0). It could also be written as:lt(1). While this matches only a single element, :first-child can match more than one: One for each parent.
- prev ~ siblings
-
Description
Selects all sibling elements that follow after the "prev" element, have the same parent, and match the filtering "siblings" selector. The notable difference between (
prev + next) and (prev ~ siblings) is their respective reach. While the former reaches only to the immediately following sibling element, the latter extends that reach to all following sibling elements.
- prev + next
-
Description
Selects all next elements matching "next" that are immediately preceded by a sibling "prev". One important point to consider with both the next adjacent sibling selector (
prev + next) and the general sibling selector (prev ~ siblings) is that the elements on either side of the combinator must share the same parent.
- parent > child
-
Description
Selects all direct child elements specified by "child" of elements specified by "parent". As a CSS selector, the child combinator is supported by all modern web browsers including Safari, Firefox, Opera, Chrome, and Internet Explorer 7 and above, but notably not by Internet Explorer versions 6 and below. However, in jQuery, this selector (along with all others) works across all supported browsers, including IE6.
The child combinator (E > F) can be thought of as a more specific form of the descendant combinator (E F) in that it selects only first-level descendants.
Note: The
$("> elem", context)selector will be deprecated in a future release. Its usage is thus discouraged in lieu of using alternative selectors.
- ancestor descendant
-
Description
Selects all elements that are descendants of a given ancestor. A descendant of an element could be a child, grandchild, great-grandchild, and so on, of that element.
- selector1, selector2, selectorN
-
Description
Selects the combined results of all the specified selectors. You can specify any number of selectors to combine into a single result. This multiple expression combinator is an efficient way to select disparate elements. The order of the DOM elements in the returned jQuery object may not be identical, as they will be in document order. An alternative to this combinator is the .add() method.
- *
-
Description
Selects all elements. Caution: The all, or universal, selector is extremely slow, except when used by itself.
- .class
-
Description
Selects all elements with the given class. For class selectors, jQuery uses JavaScript's native
getElementsByClassName()function if the browser supports it.
- element
-
Description
Selects all elements with the given tag name. JavaScript's
getElementsByTagName()function is called to return the appropriate elements when this expression is used.
- #id
-
Description
Selects a single element with the given id attribute. For id selectors, jQuery uses the JavaScript function
document.getElementById(), which is extremely efficient. When another selector is attached to the id selector, such ash2#pageTitle, jQuery performs an additional check before identifying the element as a match.As always, remember that as a developer, your time is typically the most valuable resource. Do not focus on optimization of selector speed unless it is clear that performance needs to be improved.
Each
idvalue must be used only once within a document. If more than one element has been assigned the same ID, queries that use that ID will only select the first matched element in the DOM. This behavior should not be relied on, however; a document with more than one element using the same ID is invalid.If the id contains characters like periods or colons you have to escape those characters with backslashes.
- scroll
-
Signatures
-
scroll(Function) returns jQuery
-
Function handler(eventObject) :
A function to execute each time the event is triggered.
-
Function handler(eventObject) :
-
scroll([ Object ], Function) returns jQuery
-
Object eventData :
A map of data that will be passed to the event handler. -
Function handler(eventObject) :
A function to execute each time the event is triggered.
-
Object eventData :
-
scroll() returns jQuery
Description
Bind an event handler to the "scroll" JavaScript event, or trigger that event on an element. This method is a shortcut for
.bind('scroll', handler)in the first and second variations, and.trigger('scroll')in the third.The
scrollevent is sent to an element when the user scrolls to a different place in the element. It applies towindowobjects, but also to scrollable frames and elements with theoverflowCSS property set toscroll(orautowhen the element's explicit height or width is less than the height or width of its contents).For example, consider the HTML:
<div id="target" style="overflow: scroll; width: 200px; height: 100px;"> Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. </div> <div id="other"> Trigger the handler </div> <div id="log"></div>
The style definition is present to make the target element small enough to be scrollable:
The
scrollevent handler can be bound to this element:$('#target').scroll(function() { $('#log').append('<div>Handler for .scroll() called.</div>'); });Now when the user scrolls the text up or down, one or more messages are appended to
<div id="log"></div>:Handler for .scroll() called.
To trigger the event manually, apply
.scroll()without an argument:$('#other').click(function() { $('#target').scroll(); });After this code executes, clicks on Trigger the handler will also append the message.
A
scrollevent is sent whenever the element's scroll position changes, regardless of the cause. A mouse click or drag on the scroll bar, dragging inside the element, pressing the arrow keys, or using the mouse's scroll wheel could cause this event. -
- resize
-
Signatures
-
resize(Function) returns jQuery
-
Function handler(eventObject) :
A function to execute each time the event is triggered.
-
Function handler(eventObject) :
-
resize([ Object ], Function) returns jQuery
-
Object eventData :
A map of data that will be passed to the event handler. -
Function handler(eventObject) :
A function to execute each time the event is triggered.
-
Object eventData :
-
resize() returns jQuery
Description
Bind an event handler to the "resize" JavaScript event, or trigger that event on an element. This method is a shortcut for
.bind('resize', handler)in the first and second variations, and.trigger('resize')in the third.The
resizeevent is sent to thewindowelement when the size of the browser window changes:$(window).resize(function() { $('#log').append('<div>Handler for .resize() called.</div>'); });Now whenever the browser window's size is changed, the message is appended to <div id="log"> one or more times, depending on the browser.
Code in a
resizehandler should never rely on the number of times the handler is called. Depending on implementation,resizeevents can be sent continuously as the resizing is in progress (the typical behavior in Internet Explorer and WebKit-based browsers such as Safari and Chrome), or only once at the end of the resize operation (the typical behavior in some other browsers such as Opera). -
- dequeue
-
Signature
-
dequeue([ String ]) returns jQuery
-
String queueName :
A string containing the name of the queue. Defaults to fx, the standard effects queue.
-
String queueName :
Description
Execute the next function on the queue for the matched elements. When
.dequeue()is called, the next function on the queue is removed from the queue, and then executed. This function should in turn (directly or indirectly) cause.dequeue()to be called, so that the sequence can continue. -
- queue
-
Signature
-
queue([ String ]) returns Array
-
String queueName :
A string containing the name of the queue. Defaults to fx, the standard effects queue.
-
String queueName :
Description
Show the queue of functions to be executed on the matched elements. -
- queue
-
Signatures
-
queue([ String ], Array) returns jQuery
-
String queueName :
A string containing the name of the queue. Defaults to fx, the standard effects queue. -
Array newQueue :
An array of functions to replace the current queue contents.
-
String queueName :
-
queue([ String ], Function) returns jQuery
-
String queueName :
A string containing the name of the queue. Defaults to fx, the standard effects queue. -
Function callback( next ) :
The new function to add to the queue, with a function to call that will dequeue the next item.
-
String queueName :
Description
Manipulate the queue of functions to be executed on the matched elements. Every element can have one to many queues of functions attached to it by jQuery. In most applications, only one queue (called
fx) is used. Queues allow a sequence of actions to be called on an element asynchronously, without halting program execution. The typical example of this is calling multiple animation methods on an element. For example:$('#foo').slideUp().fadeIn();When this statement is executed, the element begins its sliding animation immediately, but the fading transition is placed on the
fxqueue to be called only once the sliding transition is complete.The
.queue()method allows us to directly manipulate this queue of functions. Calling.queue()with a callback is particularly useful; it allows us to place a new function at the end of the queue.This feature is similar to providing a callback function with an animation method, but does not require the callback to be given at the time the animation is performed.
$('#foo').slideUp(); $('#foo').queue(function() { alert('Animation complete.'); $(this).dequeue(); });This is equivalent to:
$('#foo').slideUp(function() { alert('Animation complete.'); });Note that when adding a function with
.queue(), we should ensure that.dequeue()is eventually called so that the next function in line executes.In jQuery 1.4 the function that's called is passed in another function, as the first argument, that when called automatically dequeues the next item and keeps the queue moving. You would use it like so:
$("#test").queue(function(next) { // Do some stuff... next(); }); -
- keyup
-
Signatures
-
keyup(Function) returns jQuery
-
Function handler(eventObject) :
A function to execute each time the event is triggered.
-
Function handler(eventObject) :
-
keyup([ Object ], Function) returns jQuery
-
Object eventData :
A map of data that will be passed to the event handler. -
Function handler(eventObject) :
A function to execute each time the event is triggered.
-
Object eventData :
-
keyup() returns jQuery
Description
Bind an event handler to the "keyup" JavaScript event, or trigger that event on an element. This method is a shortcut for
.bind('keyup', handler)in the first two variations, and.trigger('keyup')in the third.The
keyupevent is sent to an element when the user releases a key on the keyboard. It can be attached to any element, but the event is only sent to the element that has the focus. Focusable elements can vary between browsers, but form elements can always get focus so are reasonable candidates for this event type.For example, consider the HTML:
<form> <input id="target" type="text" value="Hello there" /> </form> <div id="other"> Trigger the handler </div>
The event handler can be bound to the input field:
$('#target').keyup(function() { alert('Handler for .keyup() called.'); });Now when the insertion point is inside the field and a key is pressed and released, the alert is displayed:
Handler for .keyup() called.
To trigger the event manually, apply
.keyup()without arguments:$('#other').click(function() { $('#target').keyup(); });After this code executes, clicks on Trigger the handler will also alert the message.
If key presses anywhere need to be caught (for example, to implement global shortcut keys on a page), it is useful to attach this behavior to the
documentobject. Because of event bubbling, all key presses will make their way up the DOM to thedocumentobject unless explicitly stopped.To determine which key was pressed, examine the event object that is passed to the handler function. While browsers use differing properties to store this information, jQuery normalizes the
.whichproperty so you can reliably use it to retrieve the key code. This code corresponds to a key on the keyboard, including codes for special keys such as arrows. For catching actual text entry,.keypress()may be a better choice. -
- keypress
-
Signatures
-
keypress(Function) returns jQuery
-
Function handler(eventObject) :
A function to execute each time the event is triggered.
-
Function handler(eventObject) :
-
keypress([ Object ], Function) returns jQuery
-
Object eventData :
A map of data that will be passed to the event handler. -
Function handler(eventObject) :
A function to execute each time the event is triggered.
-
Object eventData :
-
keypress() returns jQuery
Description
Bind an event handler to the "keypress" JavaScript event, or trigger that event on an element. Note: as the
keypressevent isn't covered by any official specification, the actual behavior encountered when using it may differ across browsers, browser versions, and platforms.This method is a shortcut for
.bind("keypress", handler)in the first two variations, and.trigger("keypress")in the third.The
keypressevent is sent to an element when the browser registers keyboard input. This is similar to thekeydownevent, except in the case of key repeats. If the user presses and holds a key, akeydownevent is triggered once, but separatekeypressevents are triggered for each inserted character. In addition, modifier keys (such as Shift) triggerkeydownevents but notkeypressevents.A
keypressevent handler can be attached to any element, but the event is only sent to the element that has the focus. Focusable elements can vary between browsers, but form elements can always get focus so are reasonable candidates for this event type.For example, consider the HTML:
<form> <fieldset> <input id="target" type="text" value="Hello there" /> </fieldset> </form> <div id="other"> Trigger the handler </div>The event handler can be bound to the input field:
$("#target").keypress(function() { alert("Handler for .keypress() called."); });Now when the insertion point is inside the field, pressing a key displays the alert:
Handler for .keypress() called.
The message repeats if the key is held down. To trigger the event manually, apply
.keypress()without an argument::$('#other').click(function() { $("#target").keypress(); });After this code executes, clicks on Trigger the handler will also alert the message.
If key presses anywhere need to be caught (for example, to implement global shortcut keys on a page), it is useful to attach this behavior to the
documentobject. Because of event bubbling, all key presses will make their way up the DOM to thedocumentobject unless explicitly stopped.To determine which character was entered, examine the
eventobject that is passed to the handler function. While browsers use differing properties to store this information, jQuery normalizes the.whichproperty so you can reliably use it to retrieve the character code.Note that
keydownandkeyupprovide a code indicating which key is pressed, whilekeypressindicates which character was entered. For example, a lowercase "a" will be reported as 65 bykeydownandkeyup, but as 97 bykeypress. An uppercase "A" is reported as 65 by all events. Because of this distinction, when catching special keystrokes such as arrow keys,.keydown()or.keyup()is a better choice. -
- submit
-
Signatures
-
submit(Function) returns jQuery
-
Function handler(eventObject) :
A function to execute each time the event is triggered.
-
Function handler(eventObject) :
-
submit([ Object ], Function) returns jQuery
-
Object eventData :
A map of data that will be passed to the event handler. -
Function handler(eventObject) :
A function to execute each time the event is triggered.
-
Object eventData :
-
submit() returns jQuery
Description
Bind an event handler to the "submit" JavaScript event, or trigger that event on an element. This method is a shortcut for
.bind('submit', handler)in the first variation, and.trigger('submit')in the third.The
submitevent is sent to an element when the user is attempting to submit a form. It can only be attached to<form>elements. Forms can be submitted either by clicking an explicit<input type="submit">,<input type="image">, or<button type="submit">, or by pressing Enter when certain form elements have focus.Depending on the browser, the Enter key may only cause a form submission if the form has exactly one text field, or only when there is a submit button present. The interface should not rely on a particular behavior for this key unless the issue is forced by observing the keypress event for presses of the Enter key.
For example, consider the HTML:
<form id="target" action="destination.html"> <input type="text" value="Hello there" /> <input type="submit" value="Go" /> </form> <div id="other"> Trigger the handler </div>
The event handler can be bound to the form:
$('#target').submit(function() { alert('Handler for .submit() called.'); return false; });Now when the form is submitted, the message is alerted. This happens prior to the actual submission, so we can cancel the submit action by calling
.preventDefault()on the event object or by returningfalsefrom our handler. We can trigger the event manually when another element is clicked:$('#other').click(function() { $('#target').submit(); });After this code executes, clicks on Trigger the handler will also display the message. In addition, the default
submitaction on the form will be fired, so the form will be submitted.The JavaScript
submitevent does not bubble in Internet Explorer. However, scripts that rely on event delegation with thesubmitevent will work consistently across browsers as of jQuery 1.4, which has normalized the event's behavior. -
- select
-
Signatures
-
select(Function) returns jQuery
-
Function handler(eventObject) :
A function to execute each time the event is triggered.
-
Function handler(eventObject) :
-
select([ Object ], Function) returns jQuery
-
Object eventData :
A map of data that will be passed to the event handler. -
Function handler(eventObject) :
A function to execute each time the event is triggered.
-
Object eventData :
-
select() returns jQuery
Description
Bind an event handler to the "select" JavaScript event, or trigger that event on an element. This method is a shortcut for
.bind('select', handler)in the first two variations, and.trigger('select')in the third.The
selectevent is sent to an element when the user makes a text selection inside it. This event is limited to<input type="text">fields and<textarea>boxes.For example, consider the HTML:
<form> <input id="target" type="text" value="Hello there" /> </form> <div id="other"> Trigger the handler </div>
The event handler can be bound to the text input:
$('#target').select(function() { alert('Handler for .select() called.'); });Now when any portion of the text is selected, the alert is displayed. Merely setting the location of the insertion point will not trigger the event. To trigger the event manually, apply
.select()without an argument:$('#other').click(function() { $('#target').select(); });After this code executes, clicks on the Trigger button will also alert the message:
Handler for .select() called.
In addition, the default
selectaction on the field will be fired, so the entire text field will be selected.The method for retrieving the current selected text differs from one browser to another. A number of jQuery plug-ins offer cross-platform solutions.
-
- change
-
Signatures
-
change(Function) returns jQuery
-
Function handler(eventObject) :
A function to execute each time the event is triggered.
-
Function handler(eventObject) :
-
change([ Object ], Function) returns jQuery
-
Object eventData :
A map of data that will be passed to the event handler. -
Function handler(eventObject) :
A function to execute each time the event is triggered.
-
Object eventData :
-
change() returns jQuery
Description
Bind an event handler to the "change" JavaScript event, or trigger that event on an element. This method is a shortcut for
.bind('change', handler)in the first two variations, and.trigger('change')in the third.The
changeevent is sent to an element when its value changes. This event is limited to<input>elements,<textarea>boxes and<select>elements. For select boxes, checkboxes, and radio buttons, the event is fired immediately when the user makes a selection with the mouse, but for the other element types the event is deferred until the element loses focus.For example, consider the HTML:
<form> <input class="target" type="text" value="Field 1" /> <select class="target"> <option value="option1" selected="selected">Option 1</option> <option value="option2">Option 2</option> </select> </form> <div id="other"> Trigger the handler </div>The event handler can be bound to the text input and the select box:
$('.target').change(function() { alert('Handler for .change() called.'); });Now when the second option is selected from the dropdown, the alert is displayed. It is also displayed if you change the text in the field and then click away. If the field loses focus without the contents having changed, though, the event is not triggered. To trigger the event manually, apply
.change()without arguments:$('#other').click(function() { $('.target').change(); });After this code executes, clicks on Trigger the handler will also alert the message. The message will display twice, because the handler has been bound to the
changeevent on both of the form elements.As of jQuery 1.4, the
changeevent bubbles in Internet Explorer, behaving consistently with the event in other modern browsers. -
- blur
-
Signatures
-
blur(Function) returns jQuery
-
Function handler(eventObject) :
A function to execute each time the event is triggered.
-
Function handler(eventObject) :
-
blur([ Object ], Function) returns jQuery
-
Object eventData :
A map of data that will be passed to the event handler. -
Function handler(eventObject) :
A function to execute each time the event is triggered.
-
Object eventData :
-
blur() returns jQuery
Description
Bind an event handler to the "blur" JavaScript event, or trigger that event on an element. This method is a shortcut for
.bind('blur', handler)in the first two variations, and.trigger('blur')in the third.The
blurevent is sent to an element when it loses focus. Originally, this event was only applicable to form elements, such as<input>. In recent browsers, the domain of the event has been extended to include all element types. An element can lose focus via keyboard commands, such as the Tab key, or by mouse clicks elsewhere on the page.For example, consider the HTML:
<form> <input id="target" type="text" value="Field 1" /> <input type="text" value="Field 2" /> </form> <div id="other"> Trigger the handler </div> The event handler can be bound to the first input field: $('#target').blur(function() { alert('Handler for .blur() called.'); });Now if the first field has the focus, clicking elsewhere or tabbing away from it displays the alert:
Handler for .blur() called.
To trigger the event programmatically, apply
.blur()without an argument:$('#other').click(function() { $('#target').blur(); });After this code executes, clicks on Trigger the handler will also alert the message.
The
blurevent does not bubble in Internet Explorer. Therefore, scripts that rely on event delegation with theblurevent will not work consistently across browsers. As of version 1.4.2, however, jQuery works around this limitation by mappingblurto thefocusoutevent in its event delegation methods,.live()and.delegate(). -
- focus
-
Signatures
-
focus(Function) returns jQuery
-
Function handler(eventObject) :
A function to execute each time the event is triggered.
-
Function handler(eventObject) :
-
focus([ Object ], Function) returns jQuery
-
Object eventData :
A map of data that will be passed to the event handler. -
Function handler(eventObject) :
A function to execute each time the event is triggered.
-
Object eventData :
-
focus() returns jQuery
Description
Bind an event handler to the "focus" JavaScript event, or trigger that event on an element. - This method is a shortcut for
.bind('focus', handler)in the first and second variations, and.trigger('focus')in the third. - The
focusevent is sent to an element when it gains focus. This event is implicitly applicable to a limited set of elements, such as form elements (<input>,<select>, etc.) and links (<a href>). In recent browser versions, the event can be extended to include all element types by explicitly setting the element'stabindexproperty. An element can gain focus via keyboard commands, such as the Tab key, or by mouse clicks on the element. - Elements with focus are usually highlighted in some way by the browser, for example with a dotted line surrounding the element. The focus is used to determine which element is the first to receive keyboard-related events.
For example, consider the HTML:
<form> <input id="target" type="text" value="Field 1" /> <input type="text" value="Field 2" /> </form> <div id="other"> Trigger the handler </div>
The event handler can be bound to the first input field:
$('#target').focus(function() { alert('Handler for .focus() called.'); });Now clicking on the first field, or tabbing to it from another field, displays the alert:
Handler for .focus() called.
We can trigger the event when another element is clicked:
$('#other').click(function() { $('#target').focus(); });After this code executes, clicks on Trigger the handler will also alert the message.
The
focusevent does not bubble in Internet Explorer. Therefore, scripts that rely on event delegation with thefocusevent will not work consistently across browsers. As of version 1.4.2, however, jQuery works around this limitation by mappingfocusto thefocusinevent in its event delegation methods,.live()and.delegate().Triggering the focus on hidden elements causes an error in Internet Explorer. Take care to only call
.focus()without parameters on elements that are visible. -
- mousemove
-
Signatures
-
mousemove(Function) returns jQuery
-
Function handler(eventObject) :
A function to execute each time the event is triggered.
-
Function handler(eventObject) :
-
mousemove([ Object ], Function) returns jQuery
-
Object eventData :
A map of data that will be passed to the event handler. -
Function handler(eventObject) :
A function to execute each time the event is triggered.
-
Object eventData :
-
mousemove() returns jQuery
Description
Bind an event handler to the "mousemove" JavaScript event, or trigger that event on an element. This method is a shortcut for
.bind('mousemove', handler)in the first two variations, and.trigger('mousemove')in the third.The
mousemoveevent is sent to an element when the mouse pointer moves inside the element. Any HTML element can receive this event.For example, consider the HTML:
<div id="target"> Move here </div> <div id="other"> Trigger the handler </div> <div id="log"></div>
The event handler can be bound to the target:
$("#target").mousemove(function(event) { var msg = "Handler for .mousemove() called at "; msg += event.pageX + ", " + event.pageY; $("#log").append("<div>" + msg + "</div>"); });Now when the mouse pointer moves within the target button, the messages are appended to <div id="log">:
Handler for .mousemove() called at (399, 48)
Handler for .mousemove() called at (398, 46)
Handler for .mousemove() called at (397, 44)
Handler for .mousemove() called at (396, 42)
To trigger the event manually, apply
.mousemove()without an argument:$("#other").click(function() { $("#target").mousemove(); });After this code executes, clicks on the Trigger button will also append the message:
Handler for .mousemove() called at (undefined, undefined)
When tracking mouse movement, you usually need to know the actual position of the mouse pointer. The event object that is passed to the handler contains some information about the mouse coordinates. Properties such as
.clientX,.offsetX, and.pageXare available, but support for them differs between browsers. Fortunately, jQuery normalizes the.pageXand.pageYproperties so that they can be used in all browsers. These properties provide the X and Y coordinates of the mouse pointer relative to the top-left corner of the document, as illustrated in the example output above.Keep in mind that the
mousemoveevent is triggered whenever the mouse pointer moves, even for a pixel. This means that hundreds of events can be generated over a very small amount of time. If the handler has to do any significant processing, or if multiple handlers for the event exist, this can be a serious performance drain on the browser. It is important, therefore, to optimizemousemovehandlers as much as possible, and to unbind them as soon as they are no longer needed.A common pattern is to bind the
mousemovehandler from within amousedownhander, and to unbind it from a correspondingmouseuphandler. If implementing this sequence of events, remember that themouseupevent might be sent to a different HTML element than themousemoveevent was. To account for this, themouseuphandler should typically be bound to an element high up in the DOM tree, such as<body>. -
- hover
-
Signature
-
hover(Function, Function) returns jQuery
-
Function handlerIn(eventObject) :
A function to execute when the mouse pointer enters the element. -
Function handlerOut(eventObject) :
A function to execute when the mouse pointer leaves the element.
-
Function handlerIn(eventObject) :
Description
Bind two handlers to the matched elements, to be executed when the mouse pointer enters and leaves the elements. The
.hover()method binds handlers for bothmouseenterandmouseleaveevents. You can use it to simply apply behavior to an element during the time the mouse is within the element.Calling
$(selector).hover(handlerIn, handlerOut)is shorthand for:$(selector).mouseenter(handlerIn).mouseleave(handlerOut);
See the discussions for
.mouseenter()and.mouseleave()for more details. -
- hover
-
Signature
-
hover(Function) returns jQuery
-
Function handlerInOut(eventObject) :
A function to execute when the mouse pointer enters or leaves the element.
-
Function handlerInOut(eventObject) :
Description
Bind a single handler to the matched elements, to be executed when the mouse pointer enters or leaves the elements. The
.hover()method, when passed a single function, will execute that handler for bothmouseenterandmouseleaveevents. This allows the user to use jQuery's various toggle methods within the handler or to respond differently within the handler depending on theevent.type.Calling
$(selector).hover(handlerInOut)is shorthand for:$(selector).bind("mouseenter mouseleave", handlerInOut);See the discussions for
.mouseenter()and.mouseleave()for more details. -
- mouseleave
-
Signatures
-
mouseleave(Function) returns jQuery
-
Function handler(eventObject) :
A function to execute each time the event is triggered.
-
Function handler(eventObject) :
-
mouseleave([ Object ], Function) returns jQuery
-
Object eventData :
A map of data that will be passed to the event handler. -
Function handler(eventObject) :
A function to execute each time the event is triggered.
-
Object eventData :
-
mouseleave() returns jQuery
Description
Bind an event handler to be fired when the mouse leaves an element, or trigger that handler on an element. This method is a shortcut for
.bind('mouseleave', handler)in the first two variations, and.trigger('mouseleave')in the third.The
mouseleaveJavaScript event is proprietary to Internet Explorer. Because of the event's general utility, jQuery simulates this event so that it can be used regardless of browser. This event is sent to an element when the mouse pointer leaves the element. Any HTML element can receive this event.For example, consider the HTML:
<div id="outer"> Outer <div id="inner"> Inner </div> </div> <div id="other"> Trigger the handler </div> <div id="log"></div>
The event handler can be bound to any element:
$('#outer').mouseleave(function() { $('#log').append('<div>Handler for .mouseleave() called.</div>'); });Now when the mouse pointer moves out of the Outer
<div>, the message is appended to<div id="log">. You can also trigger the event when another element is clicked:$('#other').click(function() { $('#outer').mouseleave(); });After this code executes, clicks on Trigger the handler will also append the message.
The
mouseleaveevent differs frommouseoutin the way it handles event bubbling. Ifmouseoutwere used in this example, then when the mouse pointer moved out of the Inner element, the handler would be triggered. This is usually undesirable behavior. Themouseleaveevent, on the other hand, only triggers its handler when the mouse leaves the element it is bound to, not a descendant. So in this example, the handler is triggered when the mouse leaves the Outer element, but not the Inner element. -
- mouseenter
-
Signatures
-
mouseenter(Function) returns jQuery
-
Function handler(eventObject) :
A function to execute each time the event is triggered.
-
Function handler(eventObject) :
-
mouseenter([ Object ], Function) returns jQuery
-
Object eventData :
A map of data that will be passed to the event handler. -
Function handler(eventObject) :
A function to execute each time the event is triggered.
-
Object eventData :
-
mouseenter() returns jQuery
Description
Bind an event handler to be fired when the mouse enters an element, or trigger that handler on an element. This method is a shortcut for
.bind('mouseenter', handler)in the first two variations, and.trigger('mouseenter')in the third.The
mouseenterJavaScript event is proprietary to Internet Explorer. Because of the event's general utility, jQuery simulates this event so that it can be used regardless of browser. This event is sent to an element when the mouse pointer enters the element. Any HTML element can receive this event.For example, consider the HTML:
<div id="outer"> Outer <div id="inner"> Inner </div> </div> <div id="other"> Trigger the handler </div> <div id="log"></div>
The event handler can be bound to any element:
$('#outer').mouseenter(function() { $('#log').append('<div>Handler for .mouseenter() called.</div>'); });Now when the mouse pointer moves over the Outer
<div>, the message is appended to<div id="log">. You can also trigger the event when another element is clicked:$('#other').click(function() { $('#outer').mouseenter(); });After this code executes, clicks on Trigger the handler will also append the message.
The
mouseenterevent differs frommouseoverin the way it handles event bubbling. Ifmouseoverwere used in this example, then when the mouse pointer moved over the Inner element, the handler would be triggered. This is usually undesirable behavior. Themouseenterevent, on the other hand, only triggers its handler when the mouse enters the element it is bound to, not a descendant. So in this example, the handler is triggered when the mouse enters the Outer element, but not the Inner element. -
- mouseout
-
Signatures
-
mouseout(Function) returns jQuery
-
Function handler(eventObject) :
A function to execute each time the event is triggered.
-
Function handler(eventObject) :
-
mouseout([ Object ], Function) returns jQuery
-
Object eventData :
A map of data that will be passed to the event handler. -
Function handler(eventObject) :
A function to execute each time the event is triggered.
-
Object eventData :
-
mouseout() returns jQuery
Description
Bind an event handler to the "mouseout" JavaScript event, or trigger that event on an element. This method is a shortcut for
.bind('mouseout', handler)in the first two variation, and.trigger('mouseout')in the third.The
mouseoutevent is sent to an element when the mouse pointer leaves the element. Any HTML element can receive this event.For example, consider the HTML:
<div id="outer"> Outer <div id="inner"> Inner </div> </div> <div id="other"> Trigger the handler </div> <div id="log"></div>
The event handler can be bound to any element:
$('#outer').mouseout(function() { $('#log').append('Handler for .mouseout() called.'); });Now when the mouse pointer moves out of the Outer
<div>, the message is appended to<div id="log">. To trigger the event manually, apply.mouseout()without an argument::$('#other').click(function() { $('#outer').mouseout(); });After this code executes, clicks on Trigger the handler will also append the message.
This event type can cause many headaches due to event bubbling. For instance, when the mouse pointer moves out of the Inner element in this example, a
mouseoutevent will be sent to that, then trickle up to Outer. This can trigger the boundmouseouthandler at inopportune times. See the discussion for.mouseleave()for a useful alternative. -
- mouseover
-
Signatures
-
mouseover(Function) returns jQuery
-
Function handler(eventObject) :
A function to execute each time the event is triggered.
-
Function handler(eventObject) :
-
mouseover([ Object ], Function) returns jQuery
-
Object eventData :
A map of data that will be passed to the event handler. -
Function handler(eventObject) :
A function to execute each time the event is triggered.
-
Object eventData :
-
mouseover() returns jQuery
Description
Bind an event handler to the "mouseover" JavaScript event, or trigger that event on an element. This method is a shortcut for
.bind('mouseover', handler)in the first two variations, and.trigger('mouseover')in the third.The
mouseoverevent is sent to an element when the mouse pointer enters the element. Any HTML element can receive this event.For example, consider the HTML:
<div id="outer"> Outer <div id="inner"> Inner </div> </div> <div id="other"> Trigger the handler </div> <div id="log"></div>
The event handler can be bound to any element:
$('#outer').mouseover(function() { $('#log').append('<div>Handler for .mouseover() called.</div>'); });Now when the mouse pointer moves over the Outer
<div>, the message is appended to<div id="log">. We can also trigger the event when another element is clicked:$('#other').click(function() { $('#outer').mouseover(); });After this code executes, clicks on Trigger the handler will also append the message.
This event type can cause many headaches due to event bubbling. For instance, when the mouse pointer moves over the Inner element in this example, a
mouseoverevent will be sent to that, then trickle up to Outer. This can trigger our boundmouseoverhandler at inopportune times. See the discussion for.mouseenter()for a useful alternative. -
- dblclick
-
Signatures
-
dblclick(Function) returns jQuery
-
Function handler(eventObject) :
A function to execute each time the event is triggered.
-
Function handler(eventObject) :
-
dblclick([ Object ], Function) returns jQuery
-
Object eventData :
A map of data that will be passed to the event handler. -
Function handler(eventObject) :
A function to execute each time the event is triggered.
-
Object eventData :
-
dblclick() returns jQuery
Description
Bind an event handler to the "dblclick" JavaScript event, or trigger that event on an element. This method is a shortcut for
.bind('dblclick', handler)in the first two variations, and.trigger('dblclick')in the third. Thedblclickevent is sent to an element when the element is double-clicked. Any HTML element can receive this event. For example, consider the HTML:<div id="target"> Double-click here </div> <div id="other"> Trigger the handler </div>
The event handler can be bound to any
<div>:$('#target').dblclick(function() { alert('Handler for .dblclick() called.'); });Now double-clicking on this element displays the alert:
Handler for .dblclick() called.
To trigger the event manually, apply
.dblclick()without an argument:$('#other').click(function() { $('#target').dblclick(); });After this code executes, (single) clicks on Trigger the handler will also alert the message.
The
dblclickevent is only triggered after this exact series of events:- The mouse button is depressed while the pointer is inside the element.
- The mouse button is released while the pointer is inside the element.
- The mouse button is depressed again while the pointer is inside the element, within a time window that is system-dependent.
- The mouse button is released while the pointer is inside the element.
It is inadvisable to bind handlers to both the
clickanddblclickevents for the same element. The sequence of events triggered varies from browser to browser, with some receiving twoclickevents before thedblclickand others only one. Double-click sensitivity (maximum time between clicks that is detected as a double click) can vary by operating system and browser, and is often user-configurable. -
- click
-
Signatures
-
click(Function) returns jQuery
-
Function handler(eventObject) :
A function to execute each time the event is triggered.
-
Function handler(eventObject) :
-
click([ Object ], Function) returns jQuery
-
Object eventData :
A map of data that will be passed to the event handler. -
Function handler(eventObject) :
A function to execute each time the event is triggered.
-
Object eventData :
-
click() returns jQuery
Description
Bind an event handler to the "click" JavaScript event, or trigger that event on an element. This method is a shortcut for
.bind('click', handler)in the first two variations, and.trigger('click')in the third.The
clickevent is sent to an element when the mouse pointer is over the element, and the mouse button is pressed and released. Any HTML element can receive this event.For example, consider the HTML: <div id="target"> Click here </div> <div id="other"> Trigger the handler </div>

The event handler can be bound to any
<div>:$('#target').click(function() { alert('Handler for .click() called.'); });Now if we click on this element, the alert is displayed:
Handler for .click() called.
We can also trigger the event when a different element is clicked:
$('#other').click(function() { $('#target').click(); });After this code executes, clicks on Trigger the handler will also alert the message.
The
clickevent is only triggered after this exact series of events:- The mouse button is depressed while the pointer is inside the element.
- The mouse button is released while the pointer is inside the element.
This is usually the desired sequence before taking an action. If this is not required, the
mousedownormouseupevent may be more suitable. -
- mouseup
-
Signatures
-
mouseup(Function) returns jQuery
-
Function handler(eventObject) :
A function to execute each time the event is triggered.
-
Function handler(eventObject) :
-
mouseup([ Object ], Function) returns jQuery
-
Object eventData :
A map of data that will be passed to the event handler. -
Function handler(eventObject) :
A function to execute each time the event is triggered.
-
Object eventData :
-
mouseup() returns jQuery
Description
Bind an event handler to the "mouseup" JavaScript event, or trigger that event on an element. This method is a shortcut for
.bind('mouseup', handler)in the first variation, and.trigger('mouseup')in the second.The
mouseupevent is sent to an element when the mouse pointer is over the element, and the mouse button is released. Any HTML element can receive this event.For example, consider the HTML:
<div id="target"> Click here </div> <div id="other"> Trigger the handler </div>

The event handler can be bound to any
<div>:$('#target').mouseup(function() { alert('Handler for .mouseup() called.'); });Now if we click on this element, the alert is displayed:
Handler for .mouseup() called.
We can also trigger the event when a different element is clicked:
$('#other').click(function() { $('#target').mouseup(); });After this code executes, clicks on Trigger the handler will also alert the message.
If the user clicks outside an element, drags onto it, and releases the button, this is still counted as a
mouseupevent. This sequence of actions is not treated as a button press in most user interfaces, so it is usually better to use theclickevent unless we know that themouseupevent is preferable for a particular situation. -
- mousedown
-
Signatures
-
mousedown(Function) returns jQuery
-
Function handler(eventObject) :
A function to execute each time the event is triggered.
-
Function handler(eventObject) :
-
mousedown([ Object ], Function) returns jQuery
-
Object eventData :
A map of data that will be passed to the event handler. -
Function handler(eventObject) :
A function to execute each time the event is triggered.
-
Object eventData :
-
mousedown() returns jQuery
Description
Bind an event handler to the "mousedown" JavaScript event, or trigger that event on an element. This method is a shortcut for
.bind('mousedown', handler)in the first variation, and.trigger('mousedown')in the second.The
mousedownevent is sent to an element when the mouse pointer is over the element, and the mouse button is pressed. Any HTML element can receive this event.For example, consider the HTML:
<div id="target"> Click here </div> <div id="other"> Trigger the handler </div>

The event handler can be bound to any
<div>:$('#target').mousedown(function() { alert('Handler for .mousedown() called.'); });Now if we click on this element, the alert is displayed:
Handler for .mousedown() called.
We can also trigger the event when a different element is clicked:
$('#other').click(function() { $('#target').mousedown(); });After this code executes, clicks on Trigger the handler will also alert the message.
The
mousedownevent is sent when any mouse button is clicked. To act only on specific buttons, we can use the event object'swhichproperty. Not all browsers support this property (Internet Explorer uses button instead), but jQuery normalizes the property so that it is safe to use in any browser. The value ofwhichwill be 1 for the left button, 2 for the middle button, or 3 for the right button.This event is primarily useful for ensuring that the primary button was used to begin a drag operation; if ignored, strange results can occur when the user attempts to use a context menu. While the middle and right buttons can be detected with these properties, this is not reliable. In Opera and Safari, for example, right mouse button clicks are not detectable by default.
If the user clicks on an element, drags away from it, and releases the button, this is still counted as a
mousedownevent. This sequence of actions is treated as a "canceling" of the button press in most user interfaces, so it is usually better to use theclickevent unless we know that themousedownevent is preferable for a particular situation. -
- error
-
Signatures
-
error(Function) returns jQuery
-
Function handler(eventObject) :
A function to execute when the event is triggered.
-
Function handler(eventObject) :
-
error([ Object ], Function) returns jQuery
-
Object eventData :
A map of data that will be passed to the event handler. -
Function handler(eventObject) :
A function to execute each time the event is triggered.
-
Object eventData :
Description
Bind an event handler to the "error" JavaScript event. This method is a shortcut for
.bind('error', handler).The
errorevent is sent to elements, such as images, that are referenced by a document and loaded by the browser. It is called if the element was not loaded correctly.For example, consider a page with a simple image element:
<img alt="Book" id="book" />
The event handler can be bound to the image:
$('#book') .error(function() { alert('Handler for .error() called.') }) .attr("src", "missing.png");If the image cannot be loaded (for example, because it is not present at the supplied URL), the alert is displayed:
Handler for .error() called.
The event handler must be attached before the browser fires the error event, which is why the example sets the src attribute after attaching the handler. Also, the error event may not be correctly fired when the page is served locally;
errorrelies on HTTP status codes and will generally not be triggered if the URL uses thefile:protocol.Note: A jQuery error event handler should not be attached to the window object. The browser fires the window's error event when a script error occurs. However, the window error event receives different arguments and has different return value requirements than conventional event handlers. Use
window.onerrorinstead. -
- unload
-
Signatures
-
unload(Function) returns jQuery
-
Function handler(eventObject) :
A function to execute when the event is triggered.
-
Function handler(eventObject) :
-
unload([ Object ], Function) returns jQuery
-
Object eventData :
A map of data that will be passed to the event handler. -
Function handler(eventObject) :
A function to execute each time the event is triggered.
-
Object eventData :
Description
Bind an event handler to the "unload" JavaScript event. This method is a shortcut for
.bind('unload', handler).The
unloadevent is sent to thewindowelement when the user navigates away from the page. This could mean one of many things. The user could have clicked on a link to leave the page, or typed in a new URL in the address bar. The forward and back buttons will trigger the event. Closing the browser window will cause the event to be triggered. Even a page reload will first create anunloadevent.The exact handling of the
unloadevent has varied from version to version of browsers. For example, some versions of Firefox trigger the event when a link is followed, but not when the window is closed. In practical usage, behavior should be tested on all supported browsers, and contrasted with the proprietarybeforeunloadevent.Any
unloadevent handler should be bound to thewindowobject:$(window).unload(function() { alert('Handler for .unload() called.'); });After this code executes, the alert will be displayed whenever the browser leaves the current page. It is not possible to cancel the
unloadevent with.preventDefault(). This event is available so that scripts can perform cleanup when the user leaves the page. -
- load
-
Signatures
-
load(Function) returns jQuery
-
Function handler(eventObject) :
A function to execute when the event is triggered.
-
Function handler(eventObject) :
-
load([ Object ], Function) returns jQuery
-
Object eventData :
A map of data that will be passed to the event handler. -
Function handler(eventObject) :
A function to execute each time the event is triggered.
-
Object eventData :
Description
Bind an event handler to the "load" JavaScript event. This method is a shortcut for
.bind('load', handler).The
loadevent is sent to an element when it and all sub-elements have been completely loaded. This event can be sent to any element associated with a URL: images, scripts, frames, iframes, and thewindowobject.For example, consider a page with a simple image:
<img src="book.png" alt="Book" id="book" />
The event handler can be bound to the image:
$('#book').load(function() { // Handler for .load() called. });As soon as the image has been loaded, the handler is called.
In general, it is not necessary to wait for all images to be fully loaded. If code can be executed earlier, it is usually best to place it in a handler sent to the
.ready()method.The Ajax module also has a method named
.load(). Which one is fired depends on the set of arguments passed.Caveats of the
loadevent when used with imagesA common challenge developers attempt to solve using the
.load()shortcut is to execute a function when an image (or collection of images) have completely loaded. There are several known caveats with this that should be noted. These are:- It doesn't work consistently nor reliably cross-browser
- It doesn't fire correctly in WebKit if the image src is set to the same src as before
- It doesn't correctly bubble up the DOM tree
- Can cease to fire for images that already live in the browser's cache
Note: The
.live()and.delegate()methods cannot be used to detect theloadevent of an iframe. The load event does not correctly bubble up the parent document and the event.target isn't set by Firefox, IE9 or Chrome, which is required to do event delegation. -
- ready
-
Signature
-
ready(Function) returns jQuery
-
Function handler :
A function to execute after the DOM is ready.
-
Function handler :
Description
Specify a function to execute when the DOM is fully loaded. While JavaScript provides the
loadevent for executing code when a page is rendered, this event does not get triggered until all assets such as images have been completely received. In most cases, the script can be run as soon as the DOM hierarchy has been fully constructed. The handler passed to.ready()is guaranteed to be executed after the DOM is ready, so this is usually the best place to attach all other event handlers and run other jQuery code. When using scripts that rely on the value of CSS style properties, it's important to reference external stylesheets or embed style elements before referencing the scripts.In cases where code relies on loaded assets (for example, if the dimensions of an image are required), the code should be placed in a handler for the
loadevent instead.The
.ready()method is generally incompatible with the<body onload="">attribute. Ifloadmust be used, either do not use.ready()or use jQuery's.load()method to attachloadevent handlers to the window or to more specific items, like images.All three of the following syntaxes are equivalent:
$(document).ready(handler)-
$().ready(handler)(this is not recommended) $(handler)
There is also
$(document).bind("ready", handler). This behaves similarly to the ready method but with one exception: If the ready event has already fired and you try to.bind("ready")the bound handler will not be executed. Ready handlers bound this way are executed after any bound by the other three methods above.The
.ready()method can only be called on a jQuery object matching the current document, so the selector can be omitted.The
.ready()method is typically used with an anonymous function:$(document).ready(function() { // Handler for .ready() called. });Which is equivalent to calling:
$(function() { // Handler for .ready() called. });If
.ready()is called after the DOM has been initialized, the new handler passed in will be executed immediately.Aliasing the jQuery Namespace
When using another JavaScript library, we may wish to call
$.noConflict()to avoid namespace difficulties. When this function is called, the$shortcut is no longer available, forcing us to writejQueryeach time we would normally write$. However, the handler passed to the.ready()method can take an argument, which is passed the globaljQueryobject. This means we can rename the object within the context of our.ready()handler without affecting other code:jQuery(document).ready(function($) { // Code using $ as usual goes here. }); -
- die
-
Signature
-
die() returns jQuery
Description
Remove all event handlers previously attached using .live()from the elements.Any handler that has been attached with
.live()can be removed with.die(). This method is analogous to calling.unbind()with no arguments, which is used to remove all handlers attached with.bind(). See the discussions of.live()and.unbind()for further details.As of jQuery 1.7, use of
.die()(and its complementary method,.live()) is not recommended. Instead, use.off()to remove event handlers bound with.on()Note: In order for .die() to function correctly, the selector used with it must match exactly the selector initially used with .live().
-
- die
-
Signatures
-
die(String, [ String ]) returns jQuery
-
String eventType :
A string containing a JavaScript event type, such as clickorkeydown. -
String handler :
The function that is no longer to be executed.
-
String eventType :
-
die(Map) returns jQuery
-
Map eventTypes :
A map of one or more event types, such as clickorkeydownand their corresponding functions that are no longer to be executed.
-
Map eventTypes :
Description
Remove an event handler previously attached using .live()from the elements.Any handler that has been attached with
.live()can be removed with.die(). This method is analogous to.unbind(), which is used to remove handlers attached with.bind(). See the discussions of.live()and.unbind()for further details.Note: In order for
.die()to function correctly, the selector used with it must match exactly the selector initially used with.live(). -
- jQuery.browser
-
Description
Contains flags for the useragent, read from navigator.userAgent. We recommend against using this property; please try to use feature detection instead (see jQuery.support). jQuery.browser may be moved to a plugin in a future release of jQuery. The
$.browserproperty provides information about the web browser that is accessing the page, as reported by the browser itself. It contains flags for each of the four most prevalent browser classes (Internet Explorer, Mozilla, Webkit, and Opera) as well as version information.Available flags are:
- webkit (as of jQuery 1.4)
- safari (deprecated)
- opera
- msie
- mozilla
This property is available immediately. It is therefore safe to use it to determine whether or not to call
$(document).ready(). The$.browserproperty is deprecated in jQuery 1.3, and its functionality may be moved to a team-supported plugin in a future release of jQuery.Because
$.browserusesnavigator.userAgentto determine the platform, it is vulnerable to spoofing by the user or misrepresentation by the browser itself. It is always best to avoid browser-specific code entirely where possible. The$.supportproperty is available for detection of support for particular features rather than relying on$.browser.
- jQuery.browser.version
-
Description
The version number of the rendering engine for the user's browser. Here are some typical results:
- Internet Explorer: 6.0, 7.0, 8.0
- Mozilla/Firefox/Flock/Camino: 1.7.12, 1.8.1.3, 1.9
- Opera: 10.06, 11.01
- Safari/Webkit: 312.8, 418.9
Note that IE8 claims to be 7 in Compatibility View.
- live
-
Signatures
-
live(String, Function) returns jQuery
-
String events :
A string containing a JavaScript event type, such as "click" or "keydown." As of jQuery 1.4 the string can contain multiple, space-separated event types or custom event names. -
Function handler :
A function to execute at the time the event is triggered.
-
String events :
-
live(String, Object, Function) returns jQuery
-
String events :
A string containing a JavaScript event type, such as "click" or "keydown." As of jQuery 1.4 the string can contain multiple, space-separated event types or custom event names. -
Object data :
A map of data that will be passed to the event handler. -
Function handler :
A function to execute at the time the event is triggered.
-
String events :
-
live(Object) returns jQuery
-
Object events-map :
A map of one or more JavaScript event types and functions to execute for them.
-
Object events-map :
Description
Attach an event handler for all elements which match the current selector, now and in the future. As of jQuery 1.7, the
.live()method is deprecated. Use.on()to attach event handlers. Users of older versions of jQuery should use.delegate()in preference to.live().This method provides a means to attach delegated event handlers to the
documentelement of a page, which simplifies the use of event handlers when content is dynamically added to a page. See the discussion of direct versus delegated events in the.on()method for more information.Rewriting the
.live()method in terms of its successors is straightforward; these are templates for equivalent calls for all three event attachment methods:$(selector).live(events, data, handler); // jQuery 1.3+ $(document).delegate(selector, events, data, handler); // jQuery 1.4.3+ $(document).on(events, selector, data, handler); // jQuery 1.7+
The
eventsargument can either be a space-separated list of event type names and optional namespaces, or anevent-mapof event names strings and handlers. Thedataargument is optional and can be omitted. For example, the following three method calls are functionally equivalent (but see below for more effective and performant ways to attach delegated event handlers):$("a.offsite").live("click", function(){ alert("Goodbye!"); }); // jQuery 1.3+ $(document).delegate("a.offsite", "click", function(){ alert("Goodbye!"); }); // jQuery 1.4.3+ $(document).on("click", "a.offsite", function(){ alert("Goodbye!"); }); // jQuery 1.7+Use of the
.live()method is no longer recommended since later versions of jQuery offer better methods that do not have its drawbacks. In particular, the following issues arise with the use of.live():- jQuery attempts to retrieve the elements specified by the selector before calling the
.live()method, which may be time-consuming on large documents. - Chaining methods is not supported. For example,
$("a").find(".offsite, .external").live( ... );is not valid and does not work as expected. - Since all
.live()events are attached at thedocumentelement, events take the longest and slowest possible path before they are handled. - Calling
event.stopPropagation()in the event handler is ineffective in stopping event handlers attached lower in the document; the event has already propagated todocument. - The
.live()method interacts with other event methods in ways that can be surprising, e.g.,$(document).unbind("click")removes all click handlers attached by any call to.live()!
For pages still using
.live(), this list of version-specific differences may be helpful:- Before jQuery 1.7, to stop further handlers from executing after one bound using
.live(), the handler must returnfalse. Calling.stopPropagation()will not accomplish this. - As of jQuery 1.4 the
.live()method supports custom events as well as all JavaScript events that bubble. - In jQuery 1.3.x only the following JavaScript events could be bound:
click,dblclick,keydown,keypress,keyup,mousedown,mousemove,mouseout,mouseover, andmouseup.
-
- triggerHandler
-
Signature
-
triggerHandler(String, Array) returns Object
-
String eventType :
A string containing a JavaScript event type, such as clickorsubmit. -
Array extraParameters :
An array of additional parameters to pass along to the event handler.
-
String eventType :
Description
Execute all handlers attached to an element for an event. The
.triggerHandler()method behaves similarly to.trigger(), with the following exceptions:- The
.triggerHandler()method does not cause the default behavior of an event to occur (such as a form submission). - While
.trigger()will operate on all elements matched by the jQuery object,.triggerHandler()only affects the first matched element. - Events created with
.triggerHandler()do not bubble up the DOM hierarchy; if they are not handled by the target element directly, they do nothing. - Instead of returning the jQuery object (to allow chaining),
.triggerHandler()returns whatever value was returned by the last handler it caused to be executed. If no handlers are triggered, it returnsundefined
For more information on this method, see the discussion for
.trigger(). -
- trigger
-
Signatures
-
trigger(String, Object) returns jQuery
-
String eventType :
A string containing a JavaScript event type, such as clickorsubmit. -
Object extraParameters :
Additional parameters to pass along to the event handler.
-
String eventType :
-
trigger(Event) returns jQuery
-
Event event :
A jQuery.Eventobject.
-
Event event :
Description
Execute all handlers and behaviors attached to the matched elements for the given event type. Any event handlers attached with
.bind()or one of its shortcut methods are triggered when the corresponding event occurs. They can be fired manually, however, with the.trigger()method. A call to.trigger()executes the handlers in the same order they would be if the event were triggered naturally by the user:$('#foo').bind('click', function() { alert($(this).text()); }); $('#foo').trigger('click');As of jQuery 1.3,
.trigger()ed events bubble up the DOM tree; an event handler can stop the bubbling by returningfalsefrom the handler or calling the.stopPropagation()method on the event object passed into the event. Although.trigger()simulates an event activation, complete with a synthesized event object, it does not perfectly replicate a naturally-occurring event.To trigger handlers bound via jQuery without also triggering the native event, use
.triggerHandler()instead.When we define a custom event type using the
.bind()method, the second argument to.trigger()can become useful. For example, suppose we have bound a handler for thecustomevent to our element instead of the built-inclickevent as we did above:$('#foo').bind('custom', function(event, param1, param2) { alert(param1 + "\n" + param2); }); $('#foo').trigger('custom', ['Custom', 'Event']);The event object is always passed as the first parameter to an event handler, but if additional parameters are specified during a
.trigger()call, these parameters will be passed along to the handler as well. To pass more than one parameter, use an array as shown here. As of jQuery 1.6.2, a single parameter can be passed without using an array.Note the difference between the extra parameters we're passing here and the
eventDataparameter to the .bind() method. Both are mechanisms for passing information to an event handler, but theextraParametersargument to.trigger()allows information to be determined at the time the event is triggered, while theeventDataargument to.bind()requires the information to be already computed at the time the handler is bound. -
- ajaxComplete
-
Signature
-
ajaxComplete(Function) returns jQuery
-
Function handler(event, XMLHttpRequest, ajaxOptions) :
The function to be invoked.
-
Function handler(event, XMLHttpRequest, ajaxOptions) :
Description
Register a handler to be called when Ajax requests complete. This is an Ajax Event. Whenever an Ajax request completes, jQuery triggers the
ajaxCompleteevent. Any and all handlers that have been registered with the.ajaxComplete()method are executed at this time.To observe this method in action, we can set up a basic Ajax load request:
<div class="trigger">Trigger</div> <div class="result"></div> <div class="log"></div>
We can attach our event handler to any element:
$('.log').ajaxComplete(function() { $(this).text('Triggered ajaxComplete handler.'); });Now, we can make an Ajax request using any jQuery method:
$('.trigger').click(function() { $('.result').load('ajax/test.html'); });When the user clicks the button and the Ajax request completes, the log message is displayed.
Note: Because
.ajaxComplete()is implemented as a method of jQuery object instances, we can use thethiskeyword as we do here to refer to the selected elements within the callback function.All
ajaxCompletehandlers are invoked, regardless of what Ajax request was completed. If we must differentiate between the requests, we can use the parameters passed to the handler. Each time anajaxCompletehandler is executed, it is passed the event object, theXMLHttpRequestobject, and the settings object that was used in the creation of the request. For example, we can restrict our callback to only handling events dealing with a particular URL:Note: You can get the returned ajax contents by looking at
xhr.responseXMLorxhr.responseHTMLfor xml and html respectively.$('.log').ajaxComplete(function(e, xhr, settings) { if (settings.url == 'ajax/test.html') { $(this).text('Triggered ajaxComplete handler. The result is ' + xhr.responseHTML); } }); -
- one
-
Signatures
-
one(String, [ Object ], Function) returns jQuery
-
String events :
A string containing one or more JavaScript event types, such as "click" or "submit," or custom event names. -
Object data :
A map of data that will be passed to the event handler. -
Function handler :
A function to execute at the time the event is triggered.
-
String events :
-
one(String, [ String ], [ Anything ], Function) returns jQuery
-
String events :
One or more space-separated event types and optional namespaces, such as "click" or "keydown.myPlugin". -
String selector :
A selector string to filter the descendants of the selected elements that trigger the event. If the selector is nullor omitted, the event is always triggered when it reaches the selected element. -
Anything data :
Data to be passed to the handler in event.datawhen an event is triggered. -
Function handler :
A function to execute when the event is triggered. The value falseis also allowed as a shorthand for a function that simply doesreturn false.
-
String events :
-
one(Map, [ String ], [ Anything ]) returns jQuery
-
Map events-map :
A map in which the string keys represent one or more space-separated event types and optional namespaces, and the values represent a handler function to be called for the event(s). -
String selector :
A selector string to filter the descendants of the selected elements that will call the handler. If the selector is null or omitted, the handler is always called when it reaches the selected element. -
Anything data :
Data to be passed to the handler in event.datawhen an event occurs.
-
Map events-map :
Description
Attach a handler to an event for the elements. The handler is executed at most once per element. The first form of this method is identical to
.bind(), except that the handler is unbound after its first invocation. The second two forms, introduced in jQuery 1.7, are identical to.on()except that the handler is removed after its first invocation. For example:$("#foo").one("click", function() { alert("This will be displayed only once."); });After the code is executed, a click on the element with ID
foowill display the alert. Subsequent clicks will do nothing. This code is equivalent to:$("#foo").bind("click", function( event ) { alert("This will be displayed only once."); $(this).unbind( event ); });In other words, explicitly calling
.unbind()from within a regularly-bound handler has exactly the same effect.If the first argument contains more than one space-separated event types, the event handler is called once for each event type.
-
- serializeArray
-
Signature
-
serializeArray() returns Array
Description
Encode a set of form elements as an array of names and values. The
.serializeArray()method creates a JavaScript array of objects, ready to be encoded as a JSON string. It operates on a jQuery object representing a set of form elements. The form elements can be of several types:<form> <div><input type="text" name="a" value="1" id="a" /></div> <div><input type="text" name="b" value="2" id="b" /></div> <div><input type="hidden" name="c" value="3" id="c" /></div> <div> <textarea name="d" rows="8" cols="40">4</textarea> </div> <div><select name="e"> <option value="5" selected="selected">5</option> <option value="6">6</option> <option value="7">7</option> </select></div> <div> <input type="checkbox" name="f" value="8" id="f" /> </div> <div> <input type="submit" name="g" value="Submit" id="g" /> </div> </form>The
.serializeArray()method uses the standard W3C rules for successful controls to determine which elements it should include; in particular the element cannot be disabled and must contain anameattribute. No submit button value is serialized since the form was not submitted using a button. Data from file select elements is not serialized.This method can act on a jQuery object that has selected individual form elements, such as
<input>,<textarea>, and<select>. However, it is typically easier to select the<form>tag itself for serialization:$('form').submit(function() { console.log($(this).serializeArray()); return false; });This produces the following data structure (provided that the browser supports
console.log):[ { name: "a", value: "1" }, { name: "b", value: "2" }, { name: "c", value: "3" }, { name: "d", value: "4" }, { name: "e", value: "5" } ] -
- serialize
-
Signature
-
serialize() returns String
Description
Encode a set of form elements as a string for submission. The
.serialize()method creates a text string in standard URL-encoded notation. It operates on a jQuery object representing a set of form elements. The form elements can be of several types:<form> <div><input type="text" name="a" value="1" id="a" /></div> <div><input type="text" name="b" value="2" id="b" /></div> <div><input type="hidden" name="c" value="3" id="c" /></div> <div> <textarea name="d" rows="8" cols="40">4</textarea> </div> <div><select name="e"> <option value="5" selected="selected">5</option> <option value="6">6</option> <option value="7">7</option> </select></div> <div> <input type="checkbox" name="f" value="8" id="f" /> </div> <div> <input type="submit" name="g" value="Submit" id="g" /> </div> </form>The
.serialize()method can act on a jQuery object that has selected individual form elements, such as<input>,<textarea>, and<select>. However, it is typically easier to select the<form>tag itself for serialization:$('form').submit(function() { alert($(this).serialize()); return false; });This produces a standard-looking query string:
a=1&b=2&c=3&d=4&e=5
Warning: selecting both the form and its children will cause duplicates in the serialized string.
Note: Only "successful controls" are serialized to the string. No submit button value is serialized since the form was not submitted using a button. For a form element's value to be included in the serialized string, the element must have a
nameattribute. Values from checkboxes and radio buttons (inputs of type "radio" or "checkbox") are included only if they are checked. Data from file select elements is not serialized. -
- jQuery.ajaxSetup
-
Signature
-
jQuery.ajaxSetup(Options)
-
Options options :
A set of key/value pairs that configure the default Ajax request. All options are optional.
-
Options options :
Description
Set default values for future Ajax requests. For details on the settings available for
$.ajaxSetup(), see$.ajax().All subsequent Ajax calls using any function will use the new settings, unless overridden by the individual calls, until the next invocation of
$.ajaxSetup().For example, the following sets a default for the
urlparameter before pinging the server repeatedly:$.ajaxSetup({ url: 'ping.php' });Now each time an Ajax request is made, the "ping.php" URL will be used automatically:
$.ajax({ // url not set here; uses ping.php data: {'name': 'Dan'} });Note: Global callback functions should be set with their respective global Ajax event handler methods—
.ajaxStart(),.ajaxStop(),.ajaxComplete(),.ajaxError(),.ajaxSuccess(),.ajaxSend()—rather than within theoptionsobject for$.ajaxSetup(). -
- ajaxSuccess
-
Signature
-
ajaxSuccess(Function) returns jQuery
-
Function handler(event, XMLHttpRequest, ajaxOptions) :
The function to be invoked.
-
Function handler(event, XMLHttpRequest, ajaxOptions) :
Description
Attach a function to be executed whenever an Ajax request completes successfully. This is an Ajax Event. Whenever an Ajax request completes successfully, jQuery triggers the
ajaxSuccessevent. Any and all handlers that have been registered with the.ajaxSuccess()method are executed at this time.To observe this method in action, we can set up a basic Ajax load request:
<div class="trigger">Trigger</div> <div class="result"></div> <div class="log"></div>
We can attach our event handler to any element:
$('.log').ajaxSuccess(function() { $(this).text('Triggered ajaxSuccess handler.'); });Now, we can make an Ajax request using any jQuery method:
$('.trigger').click(function() { $('.result').load('ajax/test.html'); });When the user clicks the button and the Ajax request completes successfully, the log message is displayed.
Note: Because
.ajaxSuccess()is implemented as a method of jQuery object instances, we can use thethiskeyword as we do here to refer to the selected elements within the callback function.All
ajaxSuccesshandlers are invoked, regardless of what Ajax request was completed. If we must differentiate between the requests, we can use the parameters passed to the handler. Each time anajaxSuccesshandler is executed, it is passed the event object, theXMLHttpRequestobject, and the settings object that was used in the creation of the request. For example, we can restrict our callback to only handling events dealing with a particular URL:Note: You can get the returned ajax contents by looking at
xhr.responseXMLorxhr.responseHTMLfor xml and html respectively.$('.log').ajaxSuccess(function(e, xhr, settings) { if (settings.url == 'ajax/test.html') { $(this).text('Triggered ajaxSuccess handler. The ajax response was:' + xhr.responseHTML ); } }); -
- ajaxStop
-
Signature
-
ajaxStop(Function) returns jQuery
-
Function handler() :
The function to be invoked.
-
Function handler() :
Description
Register a handler to be called when all Ajax requests have completed. This is an Ajax Event. Whenever an Ajax request completes, jQuery checks whether there are any other outstanding Ajax requests. If none remain, jQuery triggers the
ajaxStopevent. Any and all handlers that have been registered with the.ajaxStop()method are executed at this time. TheajaxStopevent is also triggered if the last outstanding Ajax request is cancelled by returning false within thebeforeSendcallback function.To observe this method in action, we can set up a basic Ajax load request:
<div class="trigger">Trigger</div> <div class="result"></div> <div class="log"></div>
We can attach our event handler to any element:
$('.log').ajaxStop(function() { $(this).text('Triggered ajaxStop handler.'); });Now, we can make an Ajax request using any jQuery method:
$('.trigger').click(function() { $('.result').load('ajax/test.html'); });When the user clicks the button and the Ajax request completes, the log message is displayed.
Because
.ajaxStop()is implemented as a method of jQuery object instances, we can use thethiskeyword as we do here to refer to the selected elements within the callback function. -
- ajaxStart
-
Signature
-
ajaxStart(Function) returns jQuery
-
Function handler() :
The function to be invoked.
-
Function handler() :
Description
Register a handler to be called when the first Ajax request begins. This is an Ajax Event. Whenever an Ajax request is about to be sent, jQuery checks whether there are any other outstanding Ajax requests. If none are in progress, jQuery triggers the
ajaxStartevent. Any and all handlers that have been registered with the.ajaxStart()method are executed at this time.To observe this method in action, we can set up a basic Ajax load request:
<div class="trigger">Trigger</div> <div class="result"></div> <div class="log"></div>
We can attach our event handler to any element:
$('.log').ajaxStart(function() { $(this).text('Triggered ajaxStart handler.'); });Now, we can make an Ajax request using any jQuery method:
$('.trigger').click(function() { $('.result').load('ajax/test.html'); });When the user clicks the button and the Ajax request is sent, the log message is displayed.
Note: Because
.ajaxStart()is implemented as a method of jQuery object instances, we can use thethiskeyword as we do here to refer to the selected elements within the callback function. -
- ajaxSend
-
Signature
-
ajaxSend(Function) returns jQuery
-
Function handler(event, jqXHR, ajaxOptions) :
The function to be invoked.
-
Function handler(event, jqXHR, ajaxOptions) :
Description
Attach a function to be executed before an Ajax request is sent. This is an Ajax Event. Whenever an Ajax request is about to be sent, jQuery triggers the
ajaxSendevent. Any and all handlers that have been registered with the.ajaxSend()method are executed at this time.To observe this method in action, we can set up a basic Ajax load request:
<div class="trigger">Trigger</div> <div class="result"></div> <div class="log"></div>
We can attach our event handler to any element:
$('.log').ajaxSend(function() { $(this).text('Triggered ajaxSend handler.'); });Now, we can make an Ajax request using any jQuery method:
$('.trigger').click(function() { $('.result').load('ajax/test.html'); });When the user clicks the button and the Ajax request is about to begin, the log message is displayed.
Note: Because
.ajaxSend()is implemented as a method of jQuery instances, we can use thethiskeyword as we do here to refer to the selected elements within the callback function.All
ajaxSendhandlers are invoked, regardless of what Ajax request is to be sent. If we must differentiate between the requests, we can use the parameters passed to the handler. Each time anajaxSendhandler is executed, it is passed the event object, thejqXHRobject (in version 1.4,XMLHttpRequestobject), and the settings object that was used in the creation of the Ajax request. For example, we can restrict our callback to only handling events dealing with a particular URL:$('.log').ajaxSend(function(e, jqxhr, settings) { if (settings.url == 'ajax/test.html') { $(this).text('Triggered ajaxSend handler.'); } }); -
- ajaxError
-
Signature
-
ajaxError(Function) returns jQuery
-
Function handler(event, jqXHR, ajaxSettings, thrownError) :
The function to be invoked.
-
Function handler(event, jqXHR, ajaxSettings, thrownError) :
Description
Register a handler to be called when Ajax requests complete with an error. This is an Ajax Event. Whenever an Ajax request completes with an error, jQuery triggers the
ajaxErrorevent. Any and all handlers that have been registered with the.ajaxError()method are executed at this time.To observe this method in action, set up a basic Ajax load request.
<button class="trigger">Trigger</button> <div class="result"></div> <div class="log"></div>
Attach the event handler to any element:
$("div.log").ajaxError(function() { $(this).text( "Triggered ajaxError handler." ); });Now, make an Ajax request using any jQuery method:
$("button.trigger").click(function() { $("div.result").load( "ajax/missing.html" ); });When the user clicks the button and the Ajax request fails, because the requested file is missing, the log message is displayed.
Note: Because
.ajaxError()is implemented as a method of jQuery object instances, you can use thethiskeyword within the callback function to refer to the selected elements.All
ajaxErrorhandlers are invoked, regardless of what Ajax request was completed. To differentiate between the requests, you can use the parameters passed to the handler. Each time anajaxErrorhandler is executed, it is passed the event object, thejqXHRobject (prior to jQuery 1.5, theXHRobject), and the settings object that was used in the creation of the request. If the request failed because JavaScript raised an exception, the exception object is passed to the handler as a fourth parameter. For example, to restrict the error callback to only handling events dealing with a particular URL:$( "div.log" ).ajaxError(function(e, jqxhr, settings, exception) { if ( settings.url == "ajax/missing.html" ) { $(this).text( "Triggered ajaxError handler." ); } }); -
- unbind
-
Signatures
-
unbind([ String ], [ Function ]) returns jQuery
-
String eventType :
A string containing a JavaScript event type, such as clickorsubmit. -
Function handler(eventObject) :
The function that is to be no longer executed.
-
String eventType :
-
unbind(String, Boolean) returns jQuery
-
String eventType :
A string containing a JavaScript event type, such as clickorsubmit. -
Boolean false :
Unbinds the corresponding 'return false' function that was bound using .bind( eventType, false ).
-
String eventType :
-
unbind(Object) returns jQuery
-
Object event :
A JavaScript event object as passed to an event handler.
-
Object event :
Description
Remove a previously-attached event handler from the elements. Event handlers attached with
.bind()can be removed with.unbind(). (As of jQuery 1.7, the.on()and.off()methods are preferred to attach and remove event handlers on elements.) In the simplest case, with no arguments,.unbind()removes all handlers attached to the elements:$('#foo').unbind();This version removes the handlers regardless of type. To be more precise, we can pass an event type:
$('#foo').unbind('click');By specifying the
clickevent type, only handlers for that event type will be unbound. This approach can still have negative ramifications if other scripts might be attaching behaviors to the same element, however. Robust and extensible applications typically demand the two-argument version for this reason:var handler = function() { alert('The quick brown fox jumps over the lazy dog.'); }; $('#foo').bind('click', handler); $('#foo').unbind('click', handler);By naming the handler, we can be assured that no other functions are accidentally removed. Note that the following will not work:
$('#foo').bind('click', function() { alert('The quick brown fox jumps over the lazy dog.'); }); // will NOT work $('#foo').unbind('click', function() { alert('The quick brown fox jumps over the lazy dog.'); });Even though the two functions are identical in content, they are created separately and so JavaScript is free to keep them as distinct function objects. To unbind a particular handler, we need a reference to that function and not a different one that happens to do the same thing.
Note: Using a proxied function to unbind an event on an element will unbind all proxied functions on that element, as the same proxy function is used for all proxied events. To allow unbinding a specific event, use unique class names on the event (e.g.
click.proxy1,click.proxy2) when attaching them.Using Namespaces
Instead of maintaining references to handlers in order to unbind them, we can namespace the events and use this capability to narrow the scope of our unbinding actions. As shown in the discussion for the
.bind()method, namespaces are defined by using a period (.) character when binding a handler:$('#foo').bind('click.myEvents', handler);When a handler is bound in this fashion, we can still unbind it the normal way:
$('#foo').unbind('click');However, if we want to avoid affecting other handlers, we can be more specific:
$('#foo').unbind('click.myEvents');We can also unbind all of the handlers in a namespace, regardless of event type:
$('#foo').unbind('.myEvents');It is particularly useful to attach namespaces to event bindings when we are developing plug-ins or otherwise writing code that may interact with other event-handling code in the future.
Using the Event Object
The third form of the
.unbind()method is used when we wish to unbind a handler from within itself. For example, suppose we wish to trigger an event handler only three times:var timesClicked = 0; $('#foo').bind('click', function(event) { alert('The quick brown fox jumps over the lazy dog.'); timesClicked++; if (timesClicked >= 3) { $(this).unbind(event); } });The handler in this case must take a parameter, so that we can capture the event object and use it to unbind the handler after the third click. The event object contains the context necessary for
.unbind()to know which handler to remove. This example is also an illustration of a closure. Since the handler refers to thetimesClickedvariable, which is defined outside the function, incrementing the variable has an effect even between invocations of the handler. -
- bind
-
Signatures
-
bind(String, [ Object ], Function) returns jQuery
-
String eventType :
A string containing one or more DOM event types, such as "click" or "submit," or custom event names. -
Object eventData :
A map of data that will be passed to the event handler. -
Function handler(eventObject) :
A function to execute each time the event is triggered.
-
String eventType :
-
bind(String, [ Object ], Boolean) returns jQuery
-
String eventType :
A string containing one or more DOM event types, such as "click" or "submit," or custom event names. -
Object eventData :
A map of data that will be passed to the event handler. -
Boolean preventBubble :
Setting the third argument to false will attach a function that prevents the default action from occurring and stops the event from bubbling. The default is true.
-
String eventType :
-
bind(Object) returns jQuery
-
Object events :
A map of one or more DOM event types and functions to execute for them.
-
Object events :
Description
Attach a handler to an event for the elements. As of jQuery 1.7, the
.on()method is the preferred method for attaching event handlers to a document. For earlier versions, the.bind()method is used for attaching an event handler directly to elements. Handlers are attached to the currently selected elements in the jQuery object, so those elements must exist at the point the call to.bind()occurs. For more flexible event binding, see the discussion of event delegation in.on()or.delegate().Any string is legal for
eventType; if the string is not the name of a native DOM event, then the handler is bound to a custom event. These events are never called by the browser, but may be triggered manually from other JavaScript code using.trigger()or.triggerHandler().If the
eventTypestring contains a period (.) character, then the event is namespaced. The period character separates the event from its namespace. For example, in the call.bind('click.name', handler), the stringclickis the event type, and the stringnameis the namespace. Namespacing allows us to unbind or trigger some events of a type without affecting others. See the discussion of.unbind()for more information.There are shorthand methods for some standard browser events such as
.click()that can be used to attach or trigger event handlers. For a complete list of shorthand methods, see the events category.When an event reaches an element, all handlers bound to that event type for the element are fired. If there are multiple handlers registered, they will always execute in the order in which they were bound. After all handlers have executed, the event continues along the normal event propagation path.
A basic usage of
.bind()is:$('#foo').bind('click', function() { alert('User clicked on "foo."'); });This code will cause the element with an ID of
footo respond to theclickevent. When a user clicks inside this element thereafter, the alert will be shown.Multiple Events
Multiple event types can be bound at once by including each one separated by a space:
$('#foo').bind('mouseenter mouseleave', function() { $(this).toggleClass('entered'); });The effect of this on
<div id="foo">(when it does not initially have the "entered" class) is to add the "entered" class when the mouse enters the<div>and remove the class when the mouse leaves.As of jQuery 1.4 we can bind multiple event handlers simultaneously by passing a map of event type/handler pairs:
$('#foo').bind({ click: function() { // do something on click }, mouseenter: function() { // do something on mouseenter } });Event Handlers
The
handlerparameter takes a callback function, as shown above. Within the handler, the keywordthisrefers to the DOM element to which the handler is bound. To make use of the element in jQuery, it can be passed to the normal$()function. For example:$('#foo').bind('click', function() { alert($(this).text()); });After this code is executed, when the user clicks inside the element with an ID of
foo, its text contents will be shown as an alert.As of jQuery 1.4.2 duplicate event handlers can be bound to an element instead of being discarded. This is useful when the event data feature is being used, or when other unique data resides in a closure around the event handler function.
In jQuery 1.4.3 you can now pass in
falsein place of an event handler. This will bind an event handler equivalent to:function(){ return false; }. This function can be removed at a later time by calling:.unbind( eventName, false ).The Event object
The
handlercallback function can also take parameters. When the function is called, the event object will be passed to the first parameter.The event object is often unnecessary and the parameter omitted, as sufficient context is usually available when the handler is bound to know exactly what needs to be done when the handler is triggered. However, at times it becomes necessary to gather more information about the user's environment at the time the event was initiated. View the full Event Object.
Returning
falsefrom a handler is equivalent to calling both.preventDefault()and.stopPropagation()on the event object.Using the event object in a handler looks like this:
$(document).ready(function() { $('#foo').bind('click', function(event) { alert('The mouse cursor is at (' + event.pageX + ', ' + event.pageY + ')'); }); });Note the parameter added to the anonymous function. This code will cause a click on the element with ID
footo report the page coordinates of the mouse cursor at the time of the click.Passing Event Data
The optional
eventDataparameter is not commonly used. When provided, this argument allows us to pass additional information to the handler. One handy use of this parameter is to work around issues caused by closures. For example, suppose we have two event handlers that both refer to the same external variable:var message = 'Spoon!'; $('#foo').bind('click', function() { alert(message); }); message = 'Not in the face!'; $('#bar').bind('click', function() { alert(message); });Because the handlers are closures that both have
messagein their environment, both will display the message Not in the face! when triggered. The variable's value has changed. To sidestep this, we can pass the message in usingeventData:var message = 'Spoon!'; $('#foo').bind('click', {msg: message}, function(event) { alert(event.data.msg); }); message = 'Not in the face!'; $('#bar').bind('click', {msg: message}, function(event) { alert(event.data.msg); });This time the variable is not referred to directly within the handlers; instead, the variable is passed in by value through
eventData, which fixes the value at the time the event is bound. The first handler will now display Spoon! while the second will alert Not in the face!Note that objects are passed to functions by reference, which further complicates this scenario.
If
eventDatais present, it is the second argument to the.bind()method; if no additional data needs to be sent to the handler, then the callback is passed as the second and final argument.See the
.trigger()method reference for a way to pass data to a handler at the time the event happens rather than when the handler is bound.As of jQuery 1.4 we can no longer attach data (and thus, events) to object, embed, or applet elements because critical errors occur when attaching data to Java applets.
Note: Although demonstrated in the next example, it is inadvisable to bind handlers to both the
clickanddblclickevents for the same element. The sequence of events triggered varies from browser to browser, with some receiving two click events before thedblclickand others only one. Double-click sensitivity (maximum time between clicks that is detected as a double click) can vary by operating system and browser, and is often user-configurable. -
- first
-
Signature
-
first() returns jQuery
Description
Reduce the set of matched elements to the first in the set. [ Given a jQuery object that represents a set of DOM elements, the
.first()method constructs a new jQuery object from the first matching element.Consider a page with a simple list on it:
<ul> <li>list item 1</li> <li>list item 2</li> <li>list item 3</li> <li>list item 4</li> <li>list item 5</li> </ul>
We can apply this method to the set of list items:
$('li').first().css('background-color', 'red');The result of this call is a red background for the first item.
-
- last
-
Signature
-
last() returns jQuery
Description
Reduce the set of matched elements to the final one in the set. [ Given a jQuery object that represents a set of DOM elements, the
.last()method constructs a new jQuery object from the last matching element.Consider a page with a simple list on it:
<ul> <li>list item 1</li> <li>list item 2</li> <li>list item 3</li> <li>list item 4</li> <li>list item 5</li> </ul>
We can apply this method to the set of list items:
$('li').last().css('background-color', 'red');The result of this call is a red background for the final item.
-
- slice
-
Signature
-
slice(Integer, [ Integer ]) returns jQuery
-
Integer start :
An integer indicating the 0-based position at which the elements begin to be selected. If negative, it indicates an offset from the end of the set. -
Integer end :
An integer indicating the 0-based position at which the elements stop being selected. If negative, it indicates an offset from the end of the set. If omitted, the range continues until the end of the set.
-
Integer start :
Description
Reduce the set of matched elements to a subset specified by a range of indices. Given a jQuery object that represents a set of DOM elements, the
.slice()method constructs a new jQuery object from a subset of the matching elements. The suppliedstartindex identifies the position of one of the elements in the set; ifendis omitted, all elements after this one will be included in the result.Consider a page with a simple list on it:
<ul> <li>list item 1</li> <li>list item 2</li> <li>list item 3</li> <li>list item 4</li> <li>list item 5</li> </ul>
We can apply this method to the set of list items:
$('li').slice(2).css('background-color', 'red');The result of this call is a red background for items 3, 4, and 5. Note that the supplied index is zero-based, and refers to the position of elements within the jQuery object, not within the DOM tree.
The end parameter allows us to limit the selected range even further. For example:
$('li').slice(2, 4).css('background-color', 'red');Now only items 3 and 4 are selected. The index is once again zero-based; the range extends up to but not including the specified index.
Negative Indices
The jQuery
.slice()method is patterned after the JavaScript .slice() method for arrays. One of the features that it mimics is the ability for negative numbers to be passed as either thestartorendparameter. If a negative number is provided, this indicates a position starting from the end of the set, rather than the beginning. For example:$('li').slice(-2, -1).css('background-color', 'red');This time only list item 4 is turned red, since it is the only item in the range between two from the end (
-2) and one from the end (-1). -
- jQuery
-
Signatures
-
jQuery(selector, [ Element, jQuery ]) returns jQuery
-
selector selector :
A string containing a selector expression -
Element, jQuery context :
A DOM Element, Document, or jQuery to use as context
-
selector selector :
-
jQuery(Element) returns jQuery
-
Element element :
A DOM element to wrap in a jQuery object.
-
Element element :
-
jQuery(Object) returns jQuery
-
Object object :
A plain object to wrap in a jQuery object.
-
Object object :
-
jQuery(Array) returns jQuery
-
Array elementArray :
An array containing a set of DOM elements to wrap in a jQuery object.
-
Array elementArray :
-
jQuery(Object) returns jQuery
-
Object jQuery object :
An existing jQuery object to clone.
-
Object jQuery object :
-
jQuery() returns jQuery
Description
Accepts a string containing a CSS selector which is then used to match a set of elements. In the first formulation listed above,
jQuery()— which can also be written as$()— searches through the DOM for any elements that match the provided selector and creates a new jQuery object that references these elements:$('div.foo');Selector Context
By default, selectors perform their searches within the DOM starting at the document root. However, an alternate context can be given for the search by using the optional second parameter to the
$()function. For example, to do a search within an event handler, the search can be restricted like so:$('div.foo').click(function() { $('span', this).addClass('bar'); });When the search for the span selector is restricted to the context of
this, only spans within the clicked element will get the additional class.Internally, selector context is implemented with the
.find()method, so$('span', this)is equivalent to$(this).find('span').Using DOM elements
The second and third formulations of this function create a jQuery object using one or more DOM elements that were already selected in some other way. A common use of this facility is to call jQuery methods on an element that has been passed to a callback function through the keyword
this:$('div.foo').click(function() { $(this).slideUp(); });This example causes elements to be hidden with a sliding animation when clicked. Because the handler receives the clicked item in the
thiskeyword as a bare DOM element, the element must be passed to the$()function before applying jQuery methods to it.XML data returned from an Ajax call can be passed to the
$()function so individual elements of the XML structure can be retrieved using.find()and other DOM traversal methods.$.post('url.xml', function(data) { var $child = $(data).find('child'); })Cloning jQuery Objects
When a jQuery object is passed to the
$()function, a clone of the object is created. This new jQuery object references the same DOM elements as the initial one.Returning an Empty Set
As of jQuery 1.4, calling the
jQuery()method with no arguments returns an empty jQuery set (with a.lengthproperty of 0). In previous versions of jQuery, this would return a set containing the document node.Working With Plain Objects
At present, the only operations supported on plain JavaScript objects wrapped in jQuery are:
.data(),.prop(),.bind(),.unbind(),.trigger()and.triggerHandler(). The use of.data()(or any method requiring.data()) on a plain object will result in a new property on the object called jQuery{randomNumber} (eg. jQuery123456789).// define a plain object var foo = {foo:'bar', hello:'world'}; // wrap this with jQuery var $foo = $(foo); // test accessing property values var test1 = $foo.prop('foo'); // bar // test setting property values $foo.prop('foo', 'foobar'); var test2 = $foo.prop('foo'); // foobar // test using .data() as summarized above $foo.data('keyName', 'someValue'); console.log($foo); // will now contain a jQuery{randomNumber} property // test binding an event name and triggering $foo.bind('eventName', function (){ console.log('eventName was called'); }); $foo.trigger('eventName'); // logs 'eventName was called'Should
.trigger('eventName')be used, it will search for an 'eventName' property on the object and attempt to execute it after any attached jQuery handlers are executed. It does not check whether the property is a function or not. To avoid this behavior,.triggerHandler('eventName')should be used instead.$foo.triggerHandler('eventName'); // also logs 'eventName was called' -
- jQuery
-
Signatures
-
jQuery(String, [ document ]) returns jQuery
-
String html :
A string of HTML to create on the fly. Note that this parses HTML, not XML. -
document ownerDocument :
A document in which the new elements will be created
-
String html :
-
jQuery(String, Object) returns jQuery
-
String html :
A string defining a single, standalone, HTML element (e.g. <div/> or <div></div>). -
Object props :
An map of attributes, events, and methods to call on the newly-created element.
-
String html :
Description
Creates DOM elements on the fly from the provided string of raw HTML. Creating New Elements
If a string is passed as the parameter to
$(), jQuery examines the string to see if it looks like HTML (i.e., it has<tag ... >somewhere within the string). If not, the string is interpreted as a selector expression, as explained above. But if the string appears to be an HTML snippet, jQuery attempts to create new DOM elements as described by the HTML. Then a jQuery object is created and returned that refers to these elements. You can perform any of the usual jQuery methods on this object:$('<p id="test">My <em>new</em> text</p>').appendTo('body');If the HTML is more complex than a single tag without attributes, as it is in the above example, the actual creation of the elements is handled by the browser's
innerHTMLmechanism. In most cases, jQuery creates a new <div> element and sets the innerHTML property of the element to the HTML snippet that was passed in. When the parameter has a single tag, such as$('<img />')or$('<a></a>'), jQuery creates the element using the native JavaScriptcreateElement()function.When passing in complex HTML, some browsers may not generate a DOM that exactly replicates the HTML source provided. As mentioned, we use the browser's
.innerHTMLproperty to parse the passed HTML and insert it into the current document. During this process, some browsers filter out certain elements such as<html>,<title>, or<head>elements. As a result, the elements inserted may not be representative of the original string passed.Filtering isn't however just limited to these tags. For example, Internet Explorer prior to version 8 will also convert all
hrefproperties on links to absolute URLs, and Internet Explorer prior to version 9 will not correctly handle HTML5 elements without the addition of a separate compatibility layer.To ensure cross-platform compatibility, the snippet must be well-formed. Tags that can contain other elements should be paired with a closing tag:
$('<a href="http://jquery.com"></a>');Alternatively, jQuery allows XML-like tag syntax (with or without a space before the slash):
$('<a/>');Tags that cannot contain elements may be quick-closed or not:
$('<img />'); $('<input>');When passing HTML to
jQuery(), please also note that text nodes are not treated as DOM elements. With the exception of a few methods (such as.content()), they are generally otherwise ignored or removed. E.g:var el = $('1<br/>2<br/>3'); // returns [<br>, "2", <br>] el = $('1<br/>2<br/>3 >'); // returns [<br>, "2", <br>, "3 >"]This behaviour is expected.
As of jQuery 1.4, the second argument to
jQuery()can accept a map consisting of a superset of the properties that can be passed to the .attr() method. Furthermore, any event type can be passed in, and the following jQuery methods can be called: val, css, html, text, data, width, height, or offset. The name"class"must be quoted in the map since it is a JavaScript reserved word, and"className"cannot be used since it is not the correct attribute name.Note: Internet Explorer will not allow you to create an
inputorbuttonelement and change its type; you must specify the type using'<input type="checkbox" />'for example. A demonstration of this can be seen below:Unsupported in IE:
$('<input />', { type: 'text', name: 'test' }).appendTo("body");Supported workaround:
$('<input type="text" />').attr({ name: 'test' }).appendTo("body"); -
- jQuery
-
Signature
-
jQuery(Function) returns jQuery
-
Function callback :
The function to execute when the DOM is ready.
-
Function callback :
Description
Binds a function to be executed when the DOM has finished loading. This function behaves just like
$(document).ready(), in that it should be used to wrap other$()operations on your page that depend on the DOM being ready. While this function is, technically, chainable, there really isn't much use for chaining against it. -
- stop
-
Signatures
-
stop([ Boolean ], [ Boolean ]) returns jQuery
-
Boolean clearQueue :
A Boolean indicating whether to remove queued animation as well. Defaults to false. -
Boolean jumpToEnd :
A Boolean indicating whether to complete the current animation immediately. Defaults to false.
-
Boolean clearQueue :
-
stop([ String ], [ Boolean ], [ Boolean ]) returns jQuery
-
String queue :
The name of the queue in which to stop animations. -
Boolean clearQueue :
A Boolean indicating whether to remove queued animation as well. Defaults to false. -
Boolean jumpToEnd :
A Boolean indicating whether to complete the current animation immediately. Defaults to false.
-
String queue :
Description
Stop the currently-running animation on the matched elements. When
.stop()is called on an element, the currently-running animation (if any) is immediately stopped. If, for instance, an element is being hidden with.slideUp()when.stop()is called, the element will now still be displayed, but will be a fraction of its previous height. Callback functions are not called.If more than one animation method is called on the same element, the later animations are placed in the effects queue for the element. These animations will not begin until the first one completes. When
.stop()is called, the next animation in the queue begins immediately. If theclearQueueparameter is provided with a value oftrue, then the rest of the animations in the queue are removed and never run.If the
jumpToEndargument is provided with a value oftrue, the current animation stops, but the element is immediately given its target values for each CSS property. In our above.slideUp()example, the element would be immediately hidden. The callback function is then immediately called, if provided.As of jQuery 1.7, if the first argument is provided as a string, only the animations in the queue represented by that string will be stopped.
The usefulness of the
.stop()method is evident when we need to animate an element onmouseenterandmouseleave:<div id="hoverme"> Hover me <img id="hoverme" src="book.png" alt="" width="100" height="123" /> </div>
We can create a nice fade effect without the common problem of multiple queued animations by adding
.stop(true, true)to the chain:$('#hoverme-stop-2').hover(function() { $(this).find('img').stop(true, true).fadeOut(); }, function() { $(this).find('img').stop(true, true).fadeIn(); });Toggling Animations
As of jQuery 1.7, stopping a toggled animation prematurely with
.stop()will trigger jQuery's internal effects tracking. In previous versions, calling the.stop()method before a toggled animation was completed would cause the animation to lose track of its state (if jumpToEnd was false). Any subsequent animations would start at a new "half-way" state, sometimes resulting in the element disappearing. To observe the new behavior, see the final example below.Animations may be stopped globally by setting the property
$.fx.offtotrue. When this is done, all animation methods will immediately set elements to their final state when called, rather than displaying an effect. -
- end
-
Signature
-
end() returns jQuery
Description
End the most recent filtering operation in the current chain and return the set of matched elements to its previous state. Most of jQuery's DOM traversal methods operate on a jQuery object instance and produce a new one, matching a different set of DOM elements. When this happens, it is as if the new set of elements is pushed onto a stack that is maintained inside the object. Each successive filtering method pushes a new element set onto the stack. If we need an older element set, we can use
end()to pop the sets back off of the stack.Suppose we have a couple short lists on a page:
<ul class="first"> <li class="foo">list item 1</li> <li>list item 2</li> <li class="bar">list item 3</li> </ul> <ul class="second"> <li class="foo">list item 1</li> <li>list item 2</li> <li class="bar">list item 3</li> </ul>
The
end()method is useful primarily when exploiting jQuery's chaining properties. When not using chaining, we can usually just call up a previous object by variable name, so we don't need to manipulate the stack. Withend(), though, we can string all the method calls together:$('ul.first').find('.foo').css('background-color', 'red').end().find('.bar').css('background-color', 'green');This chain searches for items with the class
foowithin the first list only and turns their backgrounds red. Thenend()returns the object to its state before the call tofind(), so the secondfind()looks for '.bar' inside<ul class="first">, not just inside that list's<li class="foo">, and turns the matching elements' backgrounds green. The net result is that items 1 and 3 of the first list have a colored background, and none of the items from the second list do.A long jQuery chain can be visualized as a structured code block, with filtering methods providing the openings of nested blocks and
end()methods closing them:$('ul.first').find('.foo') .css('background-color', 'red') .end().find('.bar') .css('background-color', 'green') .end();The last
end()is unnecessary, as we are discarding the jQuery object immediately thereafter. However, when the code is written in this form, theend()provides visual symmetry and a sense of completion —making the program, at least to the eyes of some developers, more readable, at the cost of a slight hit to performance as it is an additional function call. -
- andSelf
-
Signature
-
andSelf() returns jQuery
Description
Add the previous set of elements on the stack to the current set. As described in the discussion for
.end(), jQuery objects maintain an internal stack that keeps track of changes to the matched set of elements. When one of the DOM traversal methods is called, the new set of elements is pushed onto the stack. If the previous set of elements is desired as well,.andSelf()can help.Consider a page with a simple list on it:
<ul> <li>list item 1</li> <li>list item 2</li> <li class="third-item">list item 3</li> <li>list item 4</li> <li>list item 5</li> </ul>
The result of the following code is a red background behind items 3, 4 and 5:
$('li.third-item').nextAll().andSelf() .css('background-color', 'red');First, the initial selector locates item 3, initializing the stack with the set containing just this item. The call to
.nextAll()then pushes the set of items 4 and 5 onto the stack. Finally, the.andSelf()invocation merges these two sets together, creating a jQuery object that points to all three items in document order:{[<li.third-item>,<li>,<li> ]}. -
- siblings
-
Signature
-
siblings([ Selector ]) returns jQuery
-
Selector selector :
A string containing a selector expression to match elements against.
-
Selector selector :
Description
Get the siblings of each element in the set of matched elements, optionally filtered by a selector. Given a jQuery object that represents a set of DOM elements, the
.siblings()method allows us to search through the siblings of these elements in the DOM tree and construct a new jQuery object from the matching elements.The method optionally accepts a selector expression of the same type that we can pass to the
$()function. If the selector is supplied, the elements will be filtered by testing whether they match it.Consider a page with a simple list on it:
<ul> <li>list item 1</li> <li>list item 2</li> <li class="third-item">list item 3</li> <li>list item 4</li> <li>list item 5</li> </ul>
If we begin at the third item, we can find its siblings:
$('li.third-item').siblings().css('background-color', 'red');The result of this call is a red background behind items 1, 2, 4, and 5. Since we do not supply a selector expression, all of the siblings are part of the object. If we had supplied one, only the matching items among these four would be included.
The original element is not included among the siblings, which is important to remember when we wish to find all elements at a particular level of the DOM tree.
-
- animate
-
Signatures
-
animate(Map, [ String,Number ], [ String ], [ Function ]) returns jQuery
-
Map properties :
A map of CSS properties that the animation will move toward. -
String,Number duration :
A string or number determining how long the animation will run. -
String easing :
A string indicating which easing function to use for the transition. -
Function complete :
A function to call once the animation is complete.
-
Map properties :
-
animate(Map, Map) returns jQuery
-
Map properties :
A map of CSS properties that the animation will move toward. -
Map options :
A map of additional options to pass to the method. Supported keys: -
duration: A string or number determining how long the animation will run. -
easing: A string indicating which easing function to use for the transition. -
complete: A function to call once the animation is complete. -
step: A function to be called after each step of the animation. -
queue: A Boolean indicating whether to place the animation in the effects queue. Iffalse, the animation will begin immediately. As of jQuery 1.7, thequeueoption can also accept a string, in which case the animation is added to the queue represented by that string. -
specialEasing: A map of one or more of the CSS properties defined by the properties argument and their corresponding easing functions (added 1.4).
-
-
Map properties :
Description
Perform a custom animation of a set of CSS properties. The
.animate()method allows us to create animation effects on any numeric CSS property. The only required parameter is a map of CSS properties. This map is similar to the one that can be sent to the.css()method, except that the range of properties is more restrictive.Animation Properties and Values
All animated properties should be animated to a single numeric value, except as noted below; most properties that are non-numeric cannot be animated using basic jQuery functionality (For example,
width,height, orleftcan be animated butbackground-colorcannot be, unless the jQuery.Color() plugin is used). Property values are treated as a number of pixels unless otherwise specified. The unitsemand%can be specified where applicable.In addition to style properties, some non-style properties such as
scrollTopandscrollLeft, as well as custom properties, can be animated.Shorthand CSS properties (e.g. margin, background, border) are not supported. For example, if you want to retrieve the rendered margin, use:
$(elem).css('marginTop')and$(elem).css('marginRight'), and so on.In addition to numeric values, each property can take the strings
'show','hide', and'toggle'. These shortcuts allow for custom hiding and showing animations that take into account the display type of the element.Animated properties can also be relative. If a value is supplied with a leading
+=or-=sequence of characters, then the target value is computed by adding or subtracting the given number from the current value of the property.Note: Unlike shorthand animation methods such as
.slideDown()and.fadeIn(), the.animate()method does not make hidden elements visible as part of the effect. For example, given$('someElement').hide().animate({height:'20px'}, 500), the animation will run, but the element will remain hidden.Duration
Durations are given in milliseconds; higher values indicate slower animations, not faster ones. The strings
'fast'and'slow'can be supplied to indicate durations of200and600milliseconds, respectively.Complete Function
If supplied, the
completecallback function is fired once the animation is complete. This can be useful for stringing different animations together in sequence. The callback is not sent any arguments, butthisis set to the DOM element being animated. If multiple elements are animated, the callback is executed once per matched element, not once for the animation as a whole.Basic Usage
To animate any element, such as a simple image:
<div id="clickme"> Click here </div> <img id="book" src="book.png" alt="" width="100" height="123" style="position: relative; left: 10px;" />
To animate the opacity, left offset, and height of the image simultaneously:
$('#clickme').click(function() { $('#book').animate({ opacity: 0.25, left: '+=50', height: 'toggle' }, 5000, function() { // Animation complete. }); });
Note that the target value of the
heightproperty is'toggle'. Since the image was visible before, the animation shrinks the height to 0 to hide it. A second click then reverses this transition:
The
opacityof the image is already at its target value, so this property is not animated by the second click. Since the target value forleftis a relative value, the image moves even farther to the right during this second animation.Directional properties (
top,right,bottom,left) have no discernible effect on elements if theirpositionstyle property isstatic, which it is by default.Note: The jQuery UI project extends the
.animate()method by allowing some non-numeric styles such as colors to be animated. The project also includes mechanisms for specifying animations through CSS classes rather than individual attributes.Note: if attempting to animate an element with a height or width of 0px, where contents of the element are visible due to overflow, jQuery may clip this overflow during animation. By fixing the dimensions of the original element being hidden however, it is possible to ensure that the animation runs smoothly. A clearfix can be used to automatically fix the dimensions of your main element without the need to set this manually.
Step Function
The second version of
.animate()provides astepoption — a callback function that is fired at each step of the animation. This function is useful for enabling custom animation types or altering the animation as it is occurring. It accepts two arguments (nowandfx), andthisis set to the DOM element being animated.-
now: the numeric value of the property being animated at each step -
fx: a reference to thejQuery.fxprototype object, which contains a number of properties such aselemfor the animated element,startandendfor the first and last value of the animated property, respectively, andpropfor the property being animated.
Note that the
stepfunction is called for each animated property on each animated element. For example, given two list items, thestepfunction fires four times at each step of the animation:$('li').animate({ opacity: .5, height: '50%' }, { step: function(now, fx) { var data = fx.elem.id + ' ' + fx.prop + ': ' + now; $('body').append('<div>' + data + '</div>'); } });Easing
The remaining parameter of
.animate()is a string naming an easing function to use. An easing function specifies the speed at which the animation progresses at different points within the animation. The only easing implementations in the jQuery library are the default, calledswing, and one that progresses at a constant pace, calledlinear. More easing functions are available with the use of plug-ins, most notably the jQuery UI suite.Per-property Easing
As of jQuery version 1.4, you can set per-property easing functions within a single
.animate()call. In the first version of.animate(), each property can take an array as its value: The first member of the array is the CSS property and the second member is an easing function. If a per-property easing function is not defined for a particular property, it uses the value of the.animate()method's optional easing argument. If the easing argument is not defined, the defaultswingfunction is used.For example, to simultaneously animate the width and height with the
swingeasing function and the opacity with thelineareasing function:$('#clickme').click(function() { $('#book').animate({ width: ['toggle', 'swing'], height: ['toggle', 'swing'], opacity: 'toggle' }, 5000, 'linear', function() { $(this).after('<div>Animation complete.</div>'); }); });In the second version of
.animate(), the options map can include thespecialEasingproperty, which is itself a map of CSS properties and their corresponding easing functions. For example, to simultaneously animate the width using thelineareasing function and the height using theeaseOutBounceeasing function:$('#clickme').click(function() { $('#book').animate({ width: 'toggle', height: 'toggle' }, { duration: 5000, specialEasing: { width: 'linear', height: 'easeOutBounce' }, complete: function() { $(this).after('<div>Animation complete.</div>'); } }); });As previously noted, a plugin is required for the
easeOutBouncefunction. -
- prevAll
-
Signature
-
prevAll([ Selector ]) returns jQuery
-
Selector selector :
A string containing a selector expression to match elements against.
-
Selector selector :
Description
Get all preceding siblings of each element in the set of matched elements, optionally filtered by a selector. Given a jQuery object that represents a set of DOM elements, the
.prevAll()method searches through the predecessors of these elements in the DOM tree and construct a new jQuery object from the matching elements; the elements are returned in order beginning with the closest sibling.The method optionally accepts a selector expression of the same type that we can pass to the
$()function. If the selector is supplied, the elements will be filtered by testing whether they match it.Consider a page with a simple list on it:
<ul> <li>list item 1</li> <li>list item 2</li> <li class="third-item">list item 3</li> <li>list item 4</li> <li>list item 5</li> </ul>
If we begin at the third item, we can find the elements which come before it:
$('li.third-item').prevAll().css('background-color', 'red');The result of this call is a red background behind items 1 and 2. Since we do not supply a selector expression, these preceding elements are unequivocally included as part of the object. If we had supplied one, the elements would be tested for a match before they were included.
-
- prev
-
Signature
-
prev([ Selector ]) returns jQuery
-
Selector selector :
A string containing a selector expression to match elements against.
-
Selector selector :
Description
Get the immediately preceding sibling of each element in the set of matched elements, optionally filtered by a selector. Given a jQuery object that represents a set of DOM elements, the
.prev()method searches for the predecessor of each of these elements in the DOM tree and constructs a new jQuery object from the matching elements.The method optionally accepts a selector expression of the same type that can be passed to the
$()function. If the selector is supplied, the preceding element will be filtered by testing whether it match the selector.Consider a page with a simple list on it:
<ul> <li>list item 1</li> <li>list item 2</li> <li class="third-item">list item 3</li> <li>list item 4</li> <li>list item 5</li> </ul>
To select the element that comes immediately before item three:
$('li.third-item').prev().css('background-color', 'red');The result of this call is a red background behind item 2. Since no selector expression is supplied, this preceding element is unequivocally included as part of the object. If one had been supplied, the element would be tested for a match before it was included.
If no previous sibling exists, or if the previous sibling element does not match a supplied selector, an empty jQuery object is returned.
To select all preceding sibling elements, rather than just the preceding adjacent sibling, use the .prevAll() method.
-
- fadeTo
-
Signatures
-
fadeTo(String,Number, Number, [ Callback ]) returns jQuery
-
String,Number duration :
A string or number determining how long the animation will run. -
Number opacity :
A number between 0 and 1 denoting the target opacity. -
Callback callback :
A function to call once the animation is complete.
-
String,Number duration :
-
fadeTo(String,Number, Number, [ String ], [ Callback ]) returns jQuery
-
String,Number duration :
A string or number determining how long the animation will run. -
Number opacity :
A number between 0 and 1 denoting the target opacity. -
String easing :
A string indicating which easing function to use for the transition. -
Callback callback :
A function to call once the animation is complete.
-
String,Number duration :
Description
Adjust the opacity of the matched elements. The
.fadeTo()method animates the opacity of the matched elements.Durations are given in milliseconds; higher values indicate slower animations, not faster ones. The strings
'fast'and'slow'can be supplied to indicate durations of200and600milliseconds, respectively. If any other string is supplied, the default duration of400milliseconds is used. Unlike the other effect methods,.fadeTo()requires thatdurationbe explicitly specified.If supplied, the callback is fired once the animation is complete. This can be useful for stringing different animations together in sequence. The callback is not sent any arguments, but
thisis set to the DOM element being animated. If multiple elements are animated, it is important to note that the callback is executed once per matched element, not once for the animation as a whole.We can animate any element, such as a simple image:
<div id="clickme"> Click here </div> <img id="book" src="book.png" alt="" width="100" height="123" /> With the element initially shown, we can dim it slowly: $('#clickme').click(function() { $('#book').fadeTo('slow', 0.5, function() { // Animation complete. }); });
With
durationset to0, this method just changes theopacityCSS property, so.fadeTo(0, opacity)is the same as.css('opacity', opacity). -
- fadeOut
-
Signatures
-
fadeOut([ String,Number ], [ Callback ]) returns jQuery
-
String,Number duration :
A string or number determining how long the animation will run. -
Callback callback :
A function to call once the animation is complete.
-
String,Number duration :
-
fadeOut([ String,Number ], [ String ], [ Callback ]) returns jQuery
-
String,Number duration :
A string or number determining how long the animation will run. -
String easing :
A string indicating which easing function to use for the transition. -
Callback callback :
A function to call once the animation is complete.
-
String,Number duration :
Description
Hide the matched elements by fading them to transparent. The
.fadeOut()method animates the opacity of the matched elements. Once the opacity reaches 0, thedisplaystyle property is set tonone, so the element no longer affects the layout of the page.Durations are given in milliseconds; higher values indicate slower animations, not faster ones. The strings
'fast'and'slow'can be supplied to indicate durations of200and600milliseconds, respectively. If any other string is supplied, or if thedurationparameter is omitted, the default duration of400milliseconds is used.We can animate any element, such as a simple image:
<div id="clickme"> Click here </div> <img id="book" src="book.png" alt="" width="100" height="123" />
With the element initially shown, we can hide it slowly:
$('#clickme').click(function() { $('#book').fadeOut('slow', function() { // Animation complete. }); });
Note: To avoid unnecessary DOM manipulation,
.fadeOut()will not hide an element that is already considered hidden. For information on which elements jQuery considers hidden, see :hidden Selector.Easing
As of jQuery 1.4.3, an optional string naming an easing function may be used. Easing functions specify the speed at which the animation progresses at different points within the animation. The only easing implementations in the jQuery library are the default, called
swing, and one that progresses at a constant pace, calledlinear. More easing functions are available with the use of plug-ins, most notably the jQuery UI suite.Callback Function
If supplied, the callback is fired once the animation is complete. This can be useful for stringing different animations together in sequence. The callback is not sent any arguments, but
thisis set to the DOM element being animated. If multiple elements are animated, it is important to note that the callback is executed once per matched element, not once for the animation as a whole.As of jQuery 1.6, the
.promise()method can be used in conjunction with thedeferred.done()method to execute a single callback for the animation as a whole when all matching elements have completed their animations ( See the example for .promise() ). -
- parents
-
Signature
-
parents([ Selector ]) returns jQuery
-
Selector selector :
A string containing a selector expression to match elements against.
-
Selector selector :
Description
Get the ancestors of each element in the current set of matched elements, optionally filtered by a selector. Given a jQuery object that represents a set of DOM elements, the
.parents()method allows us to search through the ancestors of these elements in the DOM tree and construct a new jQuery object from the matching elements ordered from immediate parent on up; the elements are returned in order from the closest parent to the outer ones. The.parents()and.parent()methods are similar, except that the latter only travels a single level up the DOM tree.The method optionally accepts a selector expression of the same type that we can pass to the
$()function. If the selector is supplied, the elements will be filtered by testing whether they match it.Consider a page with a basic nested list on it:
<ul class="level-1"> <li class="item-i">I</li> <li class="item-ii">II <ul class="level-2"> <li class="item-a">A</li> <li class="item-b">B <ul class="level-3"> <li class="item-1">1</li> <li class="item-2">2</li> <li class="item-3">3</li> </ul> </li> <li class="item-c">C</li> </ul> </li> <li class="item-iii">III</li> </ul>If we begin at item A, we can find its ancestors:
$('li.item-a').parents().css('background-color', 'red');The result of this call is a red background for the level-2 list, item II, and the level-1 list (and on up the DOM tree all the way to the
<html>element). Since we do not supply a selector expression, all of the ancestors are part of the returned jQuery object. If we had supplied one, only the matching items among these would be included. -
- fadeIn
-
Signatures
-
fadeIn([ String,Number ], [ Callback ]) returns jQuery
-
String,Number duration :
A string or number determining how long the animation will run. -
Callback callback :
A function to call once the animation is complete.
-
String,Number duration :
-
fadeIn([ String,Number ], [ String ], [ Callback ]) returns jQuery
-
String,Number duration :
A string or number determining how long the animation will run. -
String easing :
A string indicating which easing function to use for the transition. -
Callback callback :
A function to call once the animation is complete.
-
String,Number duration :
Description
Display the matched elements by fading them to opaque. The
.fadeIn()method animates the opacity of the matched elements.Durations are given in milliseconds; higher values indicate slower animations, not faster ones. The strings
'fast'and'slow'can be supplied to indicate durations of200and600milliseconds, respectively. If any other string is supplied, or if thedurationparameter is omitted, the default duration of400milliseconds is used.We can animate any element, such as a simple image:
<div id="clickme"> Click here </div> <img id="book" src="book.png" alt="" width="100" height="123" /> With the element initially hidden, we can show it slowly: $('#clickme').click(function() { $('#book').fadeIn('slow', function() { // Animation complete }); });
Easing
As of jQuery 1.4.3, an optional string naming an easing function may be used. Easing functions specify the speed at which the animation progresses at different points within the animation. The only easing implementations in the jQuery library are the default, called
swing, and one that progresses at a constant pace, calledlinear. More easing functions are available with the use of plug-ins, most notably the jQuery UI suite.Callback Function
If supplied, the callback is fired once the animation is complete. This can be useful for stringing different animations together in sequence. The callback is not sent any arguments, but
thisis set to the DOM element being animated. If multiple elements are animated, it is important to note that the callback is executed once per matched element, not once for the animation as a whole.As of jQuery 1.6, the
.promise()method can be used in conjunction with thedeferred.done()method to execute a single callback for the animation as a whole when all matching elements have completed their animations ( See the example for .promise() ). -
- parent
-
Signature
-
parent([ Selector ]) returns jQuery
-
Selector selector :
A string containing a selector expression to match elements against.
-
Selector selector :
Description
Get the parent of each element in the current set of matched elements, optionally filtered by a selector. Given a jQuery object that represents a set of DOM elements, the
.parent()method allows us to search through the parents of these elements in the DOM tree and construct a new jQuery object from the matching elements. The.parents()and.parent()methods are similar, except that the latter only travels a single level up the DOM tree.The method optionally accepts a selector expression of the same type that we can pass to the
$()function. If the selector is supplied, the elements will be filtered by testing whether they match it.Consider a page with a basic nested list on it:
<ul class="level-1"> <li class="item-i">I</li> <li class="item-ii">II <ul class="level-2"> <li class="item-a">A</li> <li class="item-b">B <ul class="level-3"> <li class="item-1">1</li> <li class="item-2">2</li> <li class="item-3">3</li> </ul> </li> <li class="item-c">C</li> </ul> </li> <li class="item-iii">III</li> </ul>If we begin at item A, we can find its parents:
$('li.item-a').parent().css('background-color', 'red');The result of this call is a red background for the level-2 list. Since we do not supply a selector expression, the parent element is unequivocally included as part of the object. If we had supplied one, the element would be tested for a match before it was included.
-
- offsetParent
-
Signature
-
offsetParent() returns jQuery
Description
Get the closest ancestor element that is positioned. Given a jQuery object that represents a set of DOM elements, the
.offsetParent()method allows us to search through the ancestors of these elements in the DOM tree and construct a new jQuery object wrapped around the closest positioned ancestor. An element is said to be positioned if it has a CSS position attribute ofrelative,absolute, orfixed. This information is useful for calculating offsets for performing animations and placing objects on the page.Consider a page with a basic nested list on it, with a positioned element:
<ul class="level-1"> <li class="item-i">I</li> <li class="item-ii" style="position: relative;">II <ul class="level-2"> <li class="item-a">A</li> <li class="item-b">B <ul class="level-3"> <li class="item-1">1</li> <li class="item-2">2</li> <li class="item-3">3</li> </ul> </li> <li class="item-c">C</li> </ul> </li> <li class="item-iii">III</li> </ul>If we begin at item A, we can find its positioned ancestor:
$('li.item-a').offsetParent().css('background-color', 'red');This will change the color of list item II, which is positioned.
-
- slideToggle
-
Signatures
-
slideToggle([ String,Number ], [ Callback ]) returns jQuery
-
String,Number duration :
A string or number determining how long the animation will run. -
Callback callback :
A function to call once the animation is complete.
-
String,Number duration :
-
slideToggle([ String,Number ], [ String ], [ Callback ]) returns jQuery
-
String,Number duration :
A string or number determining how long the animation will run. -
String easing :
A string indicating which easing function to use for the transition. -
Callback callback :
A function to call once the animation is complete.
-
String,Number duration :
Description
Display or hide the matched elements with a sliding motion. The
.slideToggle()method animates the height of the matched elements. This causes lower parts of the page to slide up or down, appearing to reveal or conceal the items. If the element is initially displayed, it will be hidden; if hidden, it will be shown. Thedisplayproperty is saved and restored as needed. If an element has adisplayvalue ofinline, then is hidden and shown, it will once again be displayedinline. When the height reaches 0 after a hiding animation, thedisplaystyle property is set tononeto ensure that the element no longer affects the layout of the page.Durations are given in milliseconds; higher values indicate slower animations, not faster ones. The strings
'fast'and'slow'can be supplied to indicate durations of200and600milliseconds, respectively.We can animate any element, such as a simple image:
<div id="clickme"> Click here </div> <img id="book" src="book.png" alt="" width="100" height="123" />
We will cause
.slideToggle()to be called when another element is clicked:$('#clickme').click(function() { $('#book').slideToggle('slow', function() { // Animation complete. }); });With the element initially shown, we can hide it slowly with the first click:
A second click will show the element once again:
Easing
As of jQuery 1.4.3, an optional string naming an easing function may be used. Easing functions specify the speed at which the animation progresses at different points within the animation. The only easing implementations in the jQuery library are the default, called
swing, and one that progresses at a constant pace, calledlinear. More easing functions are available with the use of plug-ins, most notably the jQuery UI suite.Callback Function
If supplied, the callback is fired once the animation is complete. This can be useful for stringing different animations together in sequence. The callback is not sent any arguments, but
thisis set to the DOM element being animated. If multiple elements are animated, it is important to note that the callback is executed once per matched element, not once for the animation as a whole.As of jQuery 1.6, the
.promise()method can be used in conjunction with thedeferred.done()method to execute a single callback for the animation as a whole when all matching elements have completed their animations ( See the example for .promise() ). -
- jQuery.post
-
Signature
-
jQuery.post(String, [ Map, String ], [ Function ], [ String ]) returns jqXHR
-
String url :
A string containing the URL to which the request is sent. -
Map, String data :
A map or string that is sent to the server with the request. -
Function success(data, textStatus, jqXHR) :
A callback function that is executed if the request succeeds. -
String dataType :
The type of data expected from the server. Default: Intelligent Guess (xml, json, script, or html).
-
String url :
Description
Load data from the server using a HTTP POST request. This is a shorthand Ajax function, which is equivalent to:
$.ajax({ type: 'POST', url: url, data: data, success: success, dataType: dataType });The
successcallback function is passed the returned data, which will be an XML root element or a text string depending on the MIME type of the response. It is also passed the text status of the response.As of jQuery 1.5, the
successcallback function is also passed a "jqXHR" object (in jQuery 1.4, it was passed theXMLHttpRequestobject).Most implementations will specify a success handler:
$.post('ajax/test.html', function(data) { $('.result').html(data); });This example fetches the requested HTML snippet and inserts it on the page.
Pages fetched with
POSTare never cached, so thecacheandifModifiedoptions injQuery.ajaxSetup()have no effect on these requests.The jqXHR Object
As of jQuery 1.5, all of jQuery's Ajax methods return a superset of the
XMLHTTPRequestobject. This jQuery XHR object, or "jqXHR," returned by$.post()implements the Promise interface, giving it all the properties, methods, and behavior of a Promise (see Deferred object for more information). For convenience and consistency with the callback names used by$.ajax(), it provides.error(),.success(), and.complete()methods. These methods take a function argument that is called when the request terminates, and the function receives the same arguments as the correspondingly-named$.ajax()callback.The Promise interface in jQuery 1.5 also allows jQuery's Ajax methods, including
$.post(), to chain multiple.success(),.complete(), and.error()callbacks on a single request, and even to assign these callbacks after the request may have completed. If the request is already complete, the callback is fired immediately.// Assign handlers immediately after making the request, // and remember the jqxhr object for this request var jqxhr = $.post("example.php", function() { alert("success"); }) .success(function() { alert("second success"); }) .error(function() { alert("error"); }) .complete(function() { alert("complete"); }); // perform other work here ... // Set another completion function for the request above jqxhr.complete(function(){ alert("second complete"); }); -
- slideUp
-
Signatures
-
slideUp([ String,Number ], [ Callback ]) returns jQuery
-
String,Number duration :
A string or number determining how long the animation will run. -
Callback callback :
A function to call once the animation is complete.
-
String,Number duration :
-
slideUp([ String,Number ], [ String ], [ Callback ]) returns jQuery
-
String,Number duration :
A string or number determining how long the animation will run. -
String easing :
A string indicating which easing function to use for the transition. -
Callback callback :
A function to call once the animation is complete.
-
String,Number duration :
Description
Hide the matched elements with a sliding motion. The
.slideUp()method animates the height of the matched elements. This causes lower parts of the page to slide up, appearing to conceal the items. Once the height reaches 0 (or, if set, to whatever the CSS min-height property is), thedisplaystyle property is set tononeto ensure that the element no longer affects the layout of the page.Durations are given in milliseconds; higher values indicate slower animations, not faster ones. The strings
'fast'and'slow'can be supplied to indicate durations of200and600milliseconds, respectively. If any other string is supplied, or if thedurationparameter is omitted, the default duration of400milliseconds is used.We can animate any element, such as a simple image:
<div id="clickme"> Click here </div> <img id="book" src="book.png" alt="" width="100" height="123" />
With the element initially shown, we can hide it slowly:
$('#clickme').click(function() { $('#book').slideUp('slow', function() { // Animation complete. }); });
Easing
As of jQuery 1.4.3, an optional string naming an easing function may be used. Easing functions specify the speed at which the animation progresses at different points within the animation. The only easing implementations in the jQuery library are the default, called
swing, and one that progresses at a constant pace, calledlinear. More easing functions are available with the use of plug-ins, most notably the jQuery UI suite.Callback Function
If supplied, the callback is fired once the animation is complete. This can be useful for stringing different animations together in sequence. The callback is not sent any arguments, but
thisis set to the DOM element being animated. If multiple elements are animated, it is important to note that the callback is executed once per matched element, not once for the animation as a whole.As of jQuery 1.6, the
.promise()method can be used in conjunction with thedeferred.done()method to execute a single callback for the animation as a whole when all matching elements have completed their animations ( See the example for .promise() ). -
- nextAll
-
Signature
-
nextAll([ String ]) returns jQuery
-
String selector :
A string containing a selector expression to match elements against.
-
String selector :
Description
Get all following siblings of each element in the set of matched elements, optionally filtered by a selector. Given a jQuery object that represents a set of DOM elements, the
.nextAll()method allows us to search through the successors of these elements in the DOM tree and construct a new jQuery object from the matching elements.The method optionally accepts a selector expression of the same type that we can pass to the
$()function. If the selector is supplied, the elements will be filtered by testing whether they match it.Consider a page with a simple list on it:
<ul> <li>list item 1</li> <li>list item 2</li> <li class="third-item">list item 3</li> <li>list item 4</li> <li>list item 5</li> </ul>
If we begin at the third item, we can find the elements which come after it:
$('li.third-item').nextAll().css('background-color', 'red');The result of this call is a red background behind items 4 and 5. Since we do not supply a selector expression, these following elements are unequivocally included as part of the object. If we had supplied one, the elements would be tested for a match before they were included.
-
- next
-
Signature
-
next([ Selector ]) returns jQuery
-
Selector selector :
A string containing a selector expression to match elements against.
-
Selector selector :
Description
Get the immediately following sibling of each element in the set of matched elements. If a selector is provided, it retrieves the next sibling only if it matches that selector. Given a jQuery object that represents a set of DOM elements, the
.next()method allows us to search through the immediately following sibling of these elements in the DOM tree and construct a new jQuery object from the matching elements.The method optionally accepts a selector expression of the same type that we can pass to the
$()function. If the immediately following sibling matches the selector, it remains in the newly constructed jQuery object; otherwise, it is excluded.Consider a page with a simple list on it:
<ul> <li>list item 1</li> <li>list item 2</li> <li class="third-item">list item 3</li> <li>list item 4</li> <li>list item 5</li> </ul>
If we begin at the third item, we can find the element which comes just after it:
$('li.third-item').next().css('background-color', 'red');The result of this call is a red background behind item 4. Since we do not supply a selector expression, this following element is unequivocally included as part of the object. If we had supplied one, the element would be tested for a match before it was included.
-
- slideDown
-
Signatures
-
slideDown([ String,Number ], [ Callback ]) returns jQuery
-
String,Number duration :
A string or number determining how long the animation will run. -
Callback callback :
A function to call once the animation is complete.
-
String,Number duration :
-
slideDown([ String,Number ], [ String ], [ Callback ]) returns jQuery
-
String,Number duration :
A string or number determining how long the animation will run. -
String easing :
A string indicating which easing function to use for the transition. -
Callback callback :
A function to call once the animation is complete.
-
String,Number duration :
Description
Display the matched elements with a sliding motion. The
.slideDown()method animates the height of the matched elements. This causes lower parts of the page to slide down, making way for the revealed items.Durations are given in milliseconds; higher values indicate slower animations, not faster ones. The strings
'fast'and'slow'can be supplied to indicate durations of200and600milliseconds, respectively. If any other string is supplied, or if thedurationparameter is omitted, the default duration of400milliseconds is used.We can animate any element, such as a simple image:
<div id="clickme"> Click here </div> <img id="book" src="book.png" alt="" width="100" height="123" />
With the element initially hidden, we can show it slowly:
$('#clickme').click(function() { $('#book').slideDown('slow', function() { // Animation complete. }); });
Easing
As of jQuery 1.4.3, an optional string naming an easing function may be used. Easing functions specify the speed at which the animation progresses at different points within the animation. The only easing implementations in the jQuery library are the default, called
swing, and one that progresses at a constant pace, calledlinear. More easing functions are available with the use of plug-ins, most notably the jQuery UI suite.Callback Function
If supplied, the callback is fired once the animation is complete. This can be useful for stringing different animations together in sequence. The callback is not sent any arguments, but
thisis set to the DOM element being animated. If multiple elements are animated, it is important to note that the callback is executed once per matched element, not once for the animation as a whole.As of jQuery 1.6, the
.promise()method can be used in conjunction with thedeferred.done()method to execute a single callback for the animation as a whole when all matching elements have completed their animations ( See the example for .promise() ). -
- find
-
Signatures
-
find(Selector) returns jQuery
-
Selector selector :
A string containing a selector expression to match elements against.
-
Selector selector :
-
find(Object) returns jQuery
-
Object jQuery object :
A jQuery object to match elements against.
-
Object jQuery object :
-
find(Element) returns jQuery
-
Element element :
An element to match elements against.
-
Element element :
Description
Get the descendants of each element in the current set of matched elements, filtered by a selector, jQuery object, or element. Given a jQuery object that represents a set of DOM elements, the
.find()method allows us to search through the descendants of these elements in the DOM tree and construct a new jQuery object from the matching elements. The.find()and.children()methods are similar, except that the latter only travels a single level down the DOM tree.The first signature for the
.find()method accepts a selector expression of the same type that we can pass to the$()function. The elements will be filtered by testing whether they match this selector.Consider a page with a basic nested list on it:
<ul class="level-1"> <li class="item-i">I</li> <li class="item-ii">II <ul class="level-2"> <li class="item-a">A</li> <li class="item-b">B <ul class="level-3"> <li class="item-1">1</li> <li class="item-2">2</li> <li class="item-3">3</li> </ul> </li> <li class="item-c">C</li> </ul> </li> <li class="item-iii">III</li> </ul>If we begin at item II, we can find list items within it:
$('li.item-ii').find('li').css('background-color', 'red');The result of this call is a red background on items A, B, 1, 2, 3, and C. Even though item II matches the selector expression, it is not included in the results; only descendants are considered candidates for the match.
Unlike in the rest of the tree traversal methods, the selector expression is required in a call to
.find(). If we need to retrieve all of the descendant elements, we can pass in the universal selector'*'to accomplish this.Selector context is implemented with the
.find()method;therefore,$('li.item-ii').find('li')is equivalent to$('li', 'li.item-ii').As of jQuery 1.6, we can also filter the selection with a given jQuery collection or element. With the same nested list as above, if we start with:
var $allListElements = $('li');And then pass this jQuery object to find:
$('li.item-ii').find( $allListElements );This will return a jQuery collection which contains only the list elements that are descendants of item II.
Similarly, an element may also be passed to find:
var item1 = $('li.item-1')[0]; $('li.item-ii').find( item1 ).css('background-color', 'red');The result of this call would be a red background on item 1.
-
- jQuery.getScript
-
Signature
-
jQuery.getScript(String, [ Function ]) returns jqXHR
-
String url :
A string containing the URL to which the request is sent. -
Function success(data, textStatus) :
A callback function that is executed if the request succeeds.
-
String url :
Description
Load a JavaScript file from the server using a GET HTTP request, then execute it. This is a shorthand Ajax function, which is equivalent to:
$.ajax({ url: url, dataType: "script", success: success });The callback is passed the returned JavaScript file. This is generally not useful as the script will already have run at this point.
The script is executed in the global context, so it can refer to other variables and use jQuery functions. Included scripts can have some impact on the current page:
$(".result").html("<p>Lorem ipsum dolor sit amet.</p>");Scripts are included and run by referencing the file name:
$.getScript('ajax/test.js', function(data, textStatus){ console.log(data); //data returned console.log(textStatus); //success console.log('Load was performed.'); });Note: Should you require an additional callback for errors when using the
getScript()method, the globalajaxError()callback event may be used to achieve this as follows:$( "div.log" ).ajaxError(function(e, jqxhr, settings, exception) { if (settings.dataType=='script') { $(this).text( "Triggered ajaxError handler." ); } }); -
- contents
-
Signature
-
contents() returns jQuery
Description
Get the children of each element in the set of matched elements, including text and comment nodes. Given a jQuery object that represents a set of DOM elements, the
.contents()method allows us to search through the immediate children of these elements in the DOM tree and construct a new jQuery object from the matching elements. The.contents()and.children()methods are similar, except that the former includes text nodes as well as HTML elements in the resulting jQuery object.The
.contents()method can also be used to get the content document of an iframe, if the iframe is on the same domain as the main page.Consider a simple
<div>with a number of text nodes, each of which is separated by two line break elements (<br />):<div class="container"> Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. <br /><br /> Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. <br /> <br /> Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. </div>
We can employ the
.contents()method to help convert this blob of text into three well-formed paragraphs:$('.container').contents().filter(function() { return this.nodeType == 3; }) .wrap('<p></p>') .end() .filter('br') .remove();This code first retrieves the contents of
<div class="container">and then filters it for text nodes, which are wrapped in paragraph tags. This is accomplished by testing the.nodeTypeproperty of the element. This DOM property holds a numeric code indicating the node's type; text nodes use the code 3. The contents are again filtered, this time for<br />elements, and these elements are removed. -
- closest
-
Signatures
-
closest(Selector) returns jQuery
-
Selector selector :
A string containing a selector expression to match elements against.
-
Selector selector :
-
closest(Selector, [ Element ]) returns jQuery
-
Selector selector :
A string containing a selector expression to match elements against. -
Element context :
A DOM element within which a matching element may be found. If no context is passed in then the context of the jQuery set will be used instead.
-
Selector selector :
-
closest(jQuery) returns jQuery
-
jQuery jQuery object :
A jQuery object to match elements against.
-
jQuery jQuery object :
-
closest(Element) returns jQuery
-
Element element :
An element to match elements against.
-
Element element :
Description
Get the first element that matches the selector, beginning at the current element and progressing up through the DOM tree. Given a jQuery object that represents a set of DOM elements, the
.closest()method searches through these elements and their ancestors in the DOM tree and constructs a new jQuery object from the matching elements. The.parents()and.closest()methods are similar in that they both traverse up the DOM tree. The differences between the two, though subtle, are significant:.closest() .parents() Begins with the current element Begins with the parent element Travels up the DOM tree until it finds a match for the supplied selector Travels up the DOM tree to the document's root element, adding each ancestor element to a temporary collection; it then filters that collection based on a selector if one is supplied The returned jQuery object contains zero or one element The returned jQuery object contains zero, one, or multiple elements <ul id="one" class="level-1"> <li class="item-i">I</li> <li id="ii" class="item-ii">II <ul class="level-2"> <li class="item-a">A</li> <li class="item-b">B <ul class="level-3"> <li class="item-1">1</li> <li class="item-2">2</li> <li class="item-3">3</li> </ul> </li> <li class="item-c">C</li> </ul> </li> <li class="item-iii">III</li> </ul>Suppose we perform a search for
<ul>elements starting at item A:$('li.item-a').closest('ul') .css('background-color', 'red');This will change the color of the level-2
<ul>, since it is the first encountered when traveling up the DOM tree.Suppose we search for an
<li>element instead:$('li.item-a').closest('li') .css('background-color', 'red');This will change the color of list item A. The
.closest()method begins its search with the element itself before progressing up the DOM tree, and stops when item A matches the selector.We can pass in a DOM element as the context within which to search for the closest element.
var listItemII = document.getElementById('ii'); $('li.item-a').closest('ul', listItemII) .css('background-color', 'red'); $('li.item-a').closest('#one', listItemII) .css('background-color', 'green');This will change the color of the level-2
<ul>, because it is both the first<ul>ancestor of list item A and a descendant of list item II. It will not change the color of the level-1<ul>, however, because it is not a descendant of list item II. -
- closest
-
Signature
-
closest(Array, [ Element ]) returns Array
-
Array selectors :
An array or string containing a selector expression to match elements against (can also be a jQuery object). -
Element context :
A DOM element within which a matching element may be found. If no context is passed in then the context of the jQuery set will be used instead.
-
Array selectors :
Description
Gets an array of all the elements and selectors matched against the current element up through the DOM tree. This method is primarily meant to be used internally or by plugin authors.
-
- jQuery.getJSON
-
Signature
-
jQuery.getJSON(String, [ Map ], [ Function ]) returns jqXHR
-
String url :
A string containing the URL to which the request is sent. -
Map data :
A map or string that is sent to the server with the request. -
Function success(data, textStatus, jqXHR) :
A callback function that is executed if the request succeeds.
-
String url :
Description
Load JSON-encoded data from the server using a GET HTTP request. This is a shorthand Ajax function, which is equivalent to:
$.ajax({ url: url, dataType: 'json', data: data, success: callback });Data that is sent to the server is appended to the URL as a query string. If the value of the
dataparameter is an object (map), it is converted to a string and url-encoded before it is appended to the URL.Most implementations will specify a success handler:
$.getJSON('ajax/test.json', function(data) { var items = []; $.each(data, function(key, val) { items.push('<li id="' + key + '">' + val + '</li>'); }); $('<ul/>', { 'class': 'my-new-list', html: items.join('') }).appendTo('body'); });This example, of course, relies on the structure of the JSON file:
{ "one": "Singular sensation", "two": "Beady little eyes", "three": "Little birds pitch by my doorstep" }Using this structure, the example loops through the requested data, builds an unordered list, and appends it to the body.
The
successcallback is passed the returned data, which is typically a JavaScript object or array as defined by the JSON structure and parsed using the$.parseJSON()method. It is also passed the text status of the response.As of jQuery 1.5, the
successcallback function receives a "jqXHR" object (in jQuery 1.4, it received theXMLHttpRequestobject). However, since JSONP and cross-domain GET requests do not use XHR, in those cases thejqXHRandtextStatusparameters passed to the success callback are undefined.Important: As of jQuery 1.4, if the JSON file contains a syntax error, the request will usually fail silently. Avoid frequent hand-editing of JSON data for this reason. JSON is a data-interchange format with syntax rules that are stricter than those of JavaScript's object literal notation. For example, all strings represented in JSON, whether they are properties or values, must be enclosed in double-quotes. For details on the JSON format, see http://json.org/.
JSONP
If the URL includes the string "callback=?" (or similar, as defined by the server-side API), the request is treated as JSONP instead. See the discussion of the
jsonpdata type in$.ajax()for more details.The jqXHR Object
As of jQuery 1.5, all of jQuery's Ajax methods return a superset of the
XMLHTTPRequestobject. This jQuery XHR object, or "jqXHR," returned by$.getJSON()implements the Promise interface, giving it all the properties, methods, and behavior of a Promise (see Deferred object for more information). For convenience and consistency with the callback names used by$.ajax(), it provides.error(),.success(), and.complete()methods. These methods take a function argument that is called when the request terminates, and the function receives the same arguments as the correspondingly-named$.ajax()callback.The Promise interface in jQuery 1.5 also allows jQuery's Ajax methods, including
$.getJSON(), to chain multiple.success(),.complete(), and.error()callbacks on a single request, and even to assign these callbacks after the request may have completed. If the request is already complete, the callback is fired immediately.// Assign handlers immediately after making the request, // and remember the jqxhr object for this request var jqxhr = $.getJSON("example.json", function() { alert("success"); }) .success(function() { alert("second success"); }) .error(function() { alert("error"); }) .complete(function() { alert("complete"); }); // perform other work here ... // Set another completion function for the request above jqxhr.complete(function(){ alert("second complete"); }); -
- jQuery.get
-
Signature
-
jQuery.get(String, [ Map, String ], [ Function ], [ String ]) returns jqXHR
-
String url :
A string containing the URL to which the request is sent. -
Map, String data :
A map or string that is sent to the server with the request. -
Function success(data, textStatus, jqXHR) :
A callback function that is executed if the request succeeds. -
String dataType :
The type of data expected from the server. Default: Intelligent Guess (xml, json, script, or html).
-
String url :
Description
Load data from the server using a HTTP GET request. This is a shorthand Ajax function, which is equivalent to:
$.ajax({ url: url, data: data, success: success, dataType: dataType });The
successcallback function is passed the returned data, which will be an XML root element, text string, JavaScript file, or JSON object, depending on the MIME type of the response. It is also passed the text status of the response.As of jQuery 1.5, the
successcallback function is also passed a "jqXHR" object (in jQuery 1.4, it was passed theXMLHttpRequestobject). However, since JSONP and cross-domain GET requests do not use XHR, in those cases the(j)XHRandtextStatusparameters passed to the success callback are undefined.Most implementations will specify a success handler:
$.get('ajax/test.html', function(data) { $('.result').html(data); alert('Load was performed.'); });This example fetches the requested HTML snippet and inserts it on the page.
The jqXHR Object
As of jQuery 1.5, all of jQuery's Ajax methods return a superset of the
XMLHTTPRequestobject. This jQuery XHR object, or "jqXHR," returned by$.get()implements the Promise interface, giving it all the properties, methods, and behavior of a Promise (see Deferred object for more information). For convenience and consistency with the callback names used by$.ajax(), it provides.error(),.success(), and.complete()methods. These methods take a function argument that is called when the request terminates, and the function receives the same arguments as the correspondingly-named$.ajax()callback.The Promise interface in jQuery 1.5 also allows jQuery's Ajax methods, including
$.get(), to chain multiple.success(),.complete(), and.error()callbacks on a single request, and even to assign these callbacks after the request may have completed. If the request is already complete, the callback is fired immediately.// Assign handlers immediately after making the request, // and remember the jqxhr object for this request var jqxhr = $.get("example.php", function() { alert("success"); }) .success(function() { alert("second success"); }) .error(function() { alert("error"); }) .complete(function() { alert("complete"); }); // perform other work here ... // Set another completion function for the request above jqxhr.complete(function(){ alert("second complete"); }); -
- load
-
Signature
-
load(String, Map, String, [ Function ]) returns jQuery
-
String url :
A string containing the URL to which the request is sent. -
Map, String data :
A map or string that is sent to the server with the request. -
Function complete(responseText, textStatus, XMLHttpRequest) :
A callback function that is executed when the request completes.
-
String url :
Description
Load data from the server and place the returned HTML into the matched element. This method is the simplest way to fetch data from the server. It is roughly equivalent to
$.get(url, data, success)except that it is a method rather than global function and it has an implicit callback function. When a successful response is detected (i.e. whentextStatusis "success" or "notmodified"),.load()sets the HTML contents of the matched element to the returned data. This means that most uses of the method can be quite simple:$('#result').load('ajax/test.html');The provided callback, if any, is executed after this post-processing has been performed:
$('#result').load('ajax/test.html', function() { alert('Load was performed.'); });In the two examples above, if the current document does not contain an element with an ID of "result," the
.load()method is not executed.The POST method is used if data is provided as an object; otherwise, GET is assumed.
Note: The event handling suite also has a method named
.load(). Which one is fired depends on the set of arguments passed.Loading Page Fragments
The
.load()method, unlike$.get(), allows us to specify a portion of the remote document to be inserted. This is achieved with a special syntax for theurlparameter. If one or more space characters are included in the string, the portion of the string following the first space is assumed to be a jQuery selector that determines the content to be loaded.We could modify the example above to use only part of the document that is fetched:
$('#result').load('ajax/test.html #container');When this method executes, it retrieves the content of
ajax/test.html, but then jQuery parses the returned document to find the element with an ID ofcontainer. This element, along with its contents, is inserted into the element with an ID ofresult, and the rest of the retrieved document is discarded.jQuery uses the browser's
.innerHTMLproperty to parse the retrieved document and insert it into the current document. During this process, browsers often filter elements from the document such as<html>,<title>, or<head>elements. As a result, the elements retrieved by.load()may not be exactly the same as if the document were retrieved directly by the browser.Note: When calling
.load()using a URL without a suffixed selector expression, the content is passed to.html()prior to scripts being removed. This executes the script blocks before they are discarded. If.load()is however called with a selector expression appended to the URL, the scripts are stripped out prior to the DOM being updated, which is why they are never executed. An example of both cases can be seen below:Here, any JavaScript loaded into
#aas a part of the document will successfully execute.$('#a').load('article.html');However in this case, script blocks in the document being loaded into
#bare stripped out prior to being executed:$('#b').load('article.html #target'); -
- jQuery.ajax
-
Signatures
-
jQuery.ajax(String, [ Map ]) returns jqXHR
-
String url :
A string containing the URL to which the request is sent. -
Map settings :
A set of key/value pairs that configure the Ajax request. All settings are optional. A default can be set for any option with $.ajaxSetup(). See jQuery.ajax( settings ) below for a complete list of all settings.
-
String url :
-
jQuery.ajax(Map) returns jqXHR
-
Map settings :
A set of key/value pairs that configure the Ajax request. All settings are optional. A default can be set for any option with $.ajaxSetup().
-
Map settings :
Description
Perform an asynchronous HTTP (Ajax) request. The
$.ajax()function underlies all Ajax requests sent by jQuery. It is often unnecessary to directly call this function, as several higher-level alternatives like$.get()and.load()are available and are easier to use. If less common options are required, though,$.ajax()can be used more flexibly.At its simplest, the
$.ajax()function can be called with no arguments:$.ajax();
Note: Default settings can be set globally by using the
$.ajaxSetup()function.This example, using no options, loads the contents of the current page, but does nothing with the result. To use the result, we can implement one of the callback functions.
The jqXHR Object
The jQuery XMLHttpRequest (jqXHR) object returned by
$.ajax()as of jQuery 1.5 is a superset of the browser's native XMLHttpRequest object. For example, it containsresponseTextandresponseXMLproperties, as well as agetResponseHeader()method. When the transport mechanism is something other than XMLHttpRequest (for example, a script tag for a JSONP request) thejqXHRobject simulates native XHR functionality where possible.As of jQuery 1.5.1, the
jqXHRobject also contains theoverrideMimeType()method (it was available in jQuery 1.4.x, as well, but was temporarily removed in jQuery 1.5). The.overrideMimeType()method may be used in thebeforeSend()callback function, for example, to modify the response content-type header:$.ajax({ url: 'http://fiddle.jshell.net/favicon.png', beforeSend: function( xhr ) { xhr.overrideMimeType( 'text/plain; charset=x-user-defined' ); }, success: function( data ) { if (console && console.log){ console.log( 'Sample of data:', data.slice(0,100) ); } } });The jqXHR objects returned by
$.ajax()as of jQuery 1.5 implement the Promise interface, giving them all the properties, methods, and behavior of a Promise (see Deferred object for more information). For convenience and consistency with the callback names used by$.ajax(), jqXHR also provides.error(),.success(), and.complete()methods. These methods take a function argument that is called when the$.ajax()request terminates, and the function receives the same arguments as the correspondingly-named$.ajax()callback. This allows you to assign multiple callbacks on a single request, and even to assign callbacks after the request may have completed. (If the request is already complete, the callback is fired immediately.)Deprecation Notice: The
jqXHR.success(),jqXHR.error(), andjqXHR.complete()callbacks will be deprecated in jQuery 1.8. To prepare your code for their eventual removal, usejqXHR.done(),jqXHR.fail(), andjqXHR.always()instead.// Assign handlers immediately after making the request, // and remember the jqxhr object for this request var jqxhr = $.ajax( "example.php" ) .done(function() { alert("success"); }) .fail(function() { alert("error"); }) .always(function() { alert("complete"); }); // perform other work here ... // Set another completion function for the request above jqxhr.always(function() { alert("second complete"); });For backward compatibility with
XMLHttpRequest, ajqXHRobject will expose the following properties and methods:readyStatestatusstatusText-
responseXMLand/orresponseTextwhen the underlying request responded with xml and/or text, respectively -
setRequestHeader(name, value)which departs from the standard by replacing the old value with the new one rather than concatenating the new value to the old one getAllResponseHeaders()getResponseHeader()abort()
No
onreadystatechangemechanism is provided, however, sincesuccess,error,completeandstatusCodecover all conceivable requirements.Callback Function Queues
The
beforeSend,error,dataFilter,successandcompleteoptions all accept callback functions that are invoked at the appropriate times.As of jQuery 1.5, the
error(fail),success(done), andcomplete(always, as of jQuery 1.6) callback hooks are first-in, first-out managed queues. This means you can assign more than one callback for each hook. See Deferred object methods, which are implemented internally for these$.ajax()callback hooks.The
thisreference within all callbacks is the object in thecontextoption passed to$.ajaxin the settings; ifcontextis not specified,thisis a reference to the Ajax settings themselves.Some types of Ajax requests, such as JSONP and cross-domain GET requests, do not use XHR; in those cases the
XMLHttpRequestandtextStatusparameters passed to the callback areundefined.Here are the callback hooks provided by
$.ajax():-
beforeSendcallback is invoked; it receives thejqXHRobject and thesettingsmap as parameters. -
errorcallbacks are invoked, in the order they are registered, if the request fails. They receive thejqXHR, a string indicating the error type, and an exception object if applicable. Some built-in errors will provide a string as the exception object: "abort", "timeout", "No Transport". -
dataFiltercallback is invoked immediately upon successful receipt of response data. It receives the returned data and the value ofdataType, and must return the (possibly altered) data to pass on tosuccess. -
successcallbacks are then invoked, in the order they are registered, if the request succeeds. They receive the returned data, a string containing the success code, and thejqXHRobject. -
completecallbacks fire, in the order they are registered, when the request finishes, whether in failure or success. They receive thejqXHRobject, as well as a string containing the success or error code.
For example, to make use of the returned HTML, we can implement a
successhandler:$.ajax({ url: 'ajax/test.html', success: function(data) { $('.result').html(data); alert('Load was performed.'); } });Data Types
The
$.ajax()function relies on the server to provide information about the retrieved data. If the server reports the return data as XML, the result can be traversed using normal XML methods or jQuery's selectors. If another type is detected, such as HTML in the example above, the data is treated as text.Different data handling can be achieved by using the
dataTypeoption. Besides plainxml, thedataTypecan behtml,json,jsonp,script, ortext.The
textandxmltypes return the data with no processing. The data is simply passed on to the success handler, either through theresponseTextorresponseXMLproperty of thejqXHRobject, respectively.Note: We must ensure that the MIME type reported by the web server matches our choice of
dataType. In particular, XML must be declared by the server astext/xmlorapplication/xmlfor consistent results.If
htmlis specified, any embedded JavaScript inside the retrieved data is executed before the HTML is returned as a string. Similarly,scriptwill execute the JavaScript that is pulled back from the server, then return nothing.The
jsontype parses the fetched data file as a JavaScript object and returns the constructed object as the result data. To do so, it usesjQuery.parseJSON()when the browser supports it; otherwise it uses aFunctionconstructor. Malformed JSON data will throw a parse error (see json.org for more information). JSON data is convenient for communicating structured data in a way that is concise and easy for JavaScript to parse. If the fetched data file exists on a remote server, specify thejsonptype instead.The
jsonptype appends a query string parameter ofcallback=?to the URL. The server should prepend the JSON data with the callback name to form a valid JSONP response. We can specify a parameter name other thancallbackwith thejsonpoption to$.ajax().Note: JSONP is an extension of the JSON format, requiring some server-side code to detect and handle the query string parameter. More information about it can be found in the original post detailing its use.
When data is retrieved from remote servers (which is only possible using the
scriptorjsonpdata types), theerrorcallbacks and global events will never be fired.Sending Data to the Server
By default, Ajax requests are sent using the GET HTTP method. If the POST method is required, the method can be specified by setting a value for the
typeoption. This option affects how the contents of thedataoption are sent to the server. POST data will always be transmitted to the server using UTF-8 charset, per the W3C XMLHTTPRequest standard.The
dataoption can contain either a query string of the formkey1=value1&key2=value2, or a map of the form{key1: 'value1', key2: 'value2'}. If the latter form is used, the data is converted into a query string usingjQuery.param()before it is sent. This processing can be circumvented by settingprocessDatatofalse. The processing might be undesirable if you wish to send an XML object to the server; in this case, change thecontentTypeoption fromapplication/x-www-form-urlencodedto a more appropriate MIME type.Advanced Options
The
globaloption prevents handlers registered using.ajaxSend(),.ajaxError(), and similar methods from firing when this request would trigger them. This can be useful to, for example, suppress a loading indicator that was implemented with.ajaxSend()if the requests are frequent and brief. With cross-domain script and JSONP requests, the global option is automatically set tofalse. See the descriptions of these methods below for more details. See the descriptions of these methods below for more details.If the server performs HTTP authentication before providing a response, the user name and password pair can be sent via the
usernameandpasswordoptions.Ajax requests are time-limited, so errors can be caught and handled to provide a better user experience. Request timeouts are usually either left at their default or set as a global default using
$.ajaxSetup()rather than being overridden for specific requests with thetimeoutoption.By default, requests are always issued, but the browser may serve results out of its cache. To disallow use of the cached results, set
cachetofalse. To cause the request to report failure if the asset has not been modified since the last request, setifModifiedtotrue.The
scriptCharsetallows the character set to be explicitly specified for requests that use a<script>tag (that is, a type ofscriptorjsonp). This is useful if the script and host page have differing character sets.The first letter in Ajax stands for "asynchronous," meaning that the operation occurs in parallel and the order of completion is not guaranteed. The
asyncoption to$.ajax()defaults totrue, indicating that code execution can continue after the request is made. Setting this option tofalse(and thus making the call no longer asynchronous) is strongly discouraged, as it can cause the browser to become unresponsive.The
$.ajax()function returns theXMLHttpRequestobject that it creates. Normally jQuery handles the creation of this object internally, but a custom function for manufacturing one can be specified using thexhroption. The returned object can generally be discarded, but does provide a lower-level interface for observing and manipulating the request. In particular, calling.abort()on the object will halt the request before it completes.At present, due to a bug in Firefox where
.getAllResponseHeaders()returns the empty string although.getResponseHeader('Content-Type')returns a non-empty string, automatically decoding JSON CORS responses in Firefox with jQuery is not supported.A workaround to this is possible by overriding
jQuery.ajaxSettings.xhras follows:var _super = jQuery.ajaxSettings.xhr; jQuery.ajaxSettings.xhr = function () { var xhr = _super(), getAllResponseHeaders = xhr.getAllResponseHeaders; xhr.getAllResponseHeaders = function () { if ( getAllResponseHeaders() ) { return getAllResponseHeaders(); } var allHeaders = ""; $( ["Cache-Control", "Content-Language", "Content-Type", "Expires", "Last-Modified", "Pragma"] ).each(function (i, header_name) { if ( xhr.getResponseHeader( header_name ) ) { allHeaders += header_name + ": " + xhr.getResponseHeader( header_name ) + "\n"; } return allHeaders; }); }; return xhr; };Extending Ajax
As of jQuery 1.5, jQuery's Ajax implementation includes prefilters, converters, and transports that allow you to extend Ajax with a great deal of flexibility. For more information about these advanced features, see the Extending Ajax page.
-
- length
-
Description
The number of elements in the jQuery object. The number of elements currently matched. The .size() method will return the same value.
- children
-
Signature
-
children([ Selector ]) returns jQuery
-
Selector selector :
A string containing a selector expression to match elements against.
-
Selector selector :
Description
Get the children of each element in the set of matched elements, optionally filtered by a selector. Given a jQuery object that represents a set of DOM elements, the
.children()method allows us to search through the immediate children of these elements in the DOM tree and construct a new jQuery object from the matching elements. The.find()and.children()methods are similar, except that the latter only travels a single level down the DOM tree. Note also that like most jQuery methods,.children()does not return text nodes; to get all children including text and comment nodes, use.contents().The method optionally accepts a selector expression of the same type that we can pass to the
$()function. If the selector is supplied, the elements will be filtered by testing whether they match it.Consider a page with a basic nested list on it:
<ul class="level-1"> <li class="item-i">I</li> <li class="item-ii">II <ul class="level-2"> <li class="item-a">A</li> <li class="item-b">B <ul class="level-3"> <li class="item-1">1</li> <li class="item-2">2</li> <li class="item-3">3</li> </ul> </li> <li class="item-c">C</li> </ul> </li> <li class="item-iii">III</li> </ul>If we begin at the level-2 list, we can find its children:
$('ul.level-2').children().css('background-color', 'red');The result of this call is a red background behind items A, B, and C. Since we do not supply a selector expression, all of the children are part of the returned jQuery object. If we had supplied one, only the matching items among these three would be included.
-
- add
-
Signatures
-
add(Selector) returns jQuery
-
Selector selector :
A string representing a selector expression to find additional elements to add to the set of matched elements.
-
Selector selector :
-
add(Elements) returns jQuery
-
Elements elements :
One or more elements to add to the set of matched elements.
-
Elements elements :
-
add(HTML) returns jQuery
-
HTML html :
An HTML fragment to add to the set of matched elements.
-
HTML html :
-
add(jQuery object ) returns jQuery
-
jQuery object jQuery object :
An existing jQuery object to add to the set of matched elements.
-
jQuery object jQuery object :
-
add(Selector, Element) returns jQuery
-
Selector selector :
A string representing a selector expression to find additional elements to add to the set of matched elements. -
Element context :
The point in the document at which the selector should begin matching; similar to the context argument of the $(selector, context)method.
-
Selector selector :
Description
Add elements to the set of matched elements. Given a jQuery object that represents a set of DOM elements, the
.add()method constructs a new jQuery object from the union of those elements and the ones passed into the method. The argument to.add()can be pretty much anything that$()accepts, including a jQuery selector expression, references to DOM elements, or an HTML snippet.The updated set of elements can be used in a following (chained) method, or assigned to a variable for later use. For example:
$("p").add("div").addClass("widget"); var pdiv = $("p").add("div");The following will not save the added elements, because the
.add()method creates a new set and leaves the original set in pdiv unchanged:var pdiv = $("p"); pdiv.add("div"); // WRONG, pdiv will not changeConsider a page with a simple list and a paragraph following it:
<ul> <li>list item 1</li> <li>list item 2</li> <li>list item 3</li> </ul> <p>a paragraph</p>
We can select the list items and then the paragraph by using either a selector or a reference to the DOM element itself as the
.add()method's argument:$('li').add('p').css('background-color', 'red');Or:
$('li').add(document.getElementsByTagName('p')[0]) .css('background-color', 'red');The result of this call is a red background behind all four elements. Using an HTML snippet as the
.add()method's argument (as in the third version), we can create additional elements on the fly and add those elements to the matched set of elements. Let's say, for example, that we want to alter the background of the list items along with a newly created paragraph:$('li').add('<p id="new">new paragraph</p>') .css('background-color', 'red');Although the new paragraph has been created and its background color changed, it still does not appear on the page. To place it on the page, we could add one of the insertion methods to the chain.
As of jQuery 1.4 the results from .add() will always be returned in document order (rather than a simple concatenation).
Note: To reverse the
.add()you can use.not( elements | selector )to remove elements from the jQuery results, or.end()to return to the selection before you added. -
- context
-
Description
The DOM node context originally passed to jQuery(); if none was passed then context will likely be the document.The
.live()method for binding event handlers uses this property to determine the root element to use for its event delegation needs.The value of this property is typically equal to
document, as this is the default context for jQuery objects if none is supplied. The context may differ if, for example, the object was created by searching within an<iframe>or XML document.Note that the context property may only apply to the elements originally selected by
jQuery(), as it is possible for the user to add elements to the collection via methods such as.add()and these may have a different context.
- not
-
Signatures
-
not(Selector) returns jQuery
-
Selector selector :
A string containing a selector expression to match elements against.
-
Selector selector :
-
not(Elements) returns jQuery
-
Elements elements :
One or more DOM elements to remove from the matched set.
-
Elements elements :
-
not(Function) returns jQuery
-
Function function(index) :
A function used as a test for each element in the set. thisis the current DOM element.
-
Function function(index) :
Description
Remove elements from the set of matched elements. Given a jQuery object that represents a set of DOM elements, the
.not()method constructs a new jQuery object from a subset of the matching elements. The supplied selector is tested against each element; the elements that don't match the selector will be included in the result.Consider a page with a simple list on it:
<ul> <li>list item 1</li> <li>list item 2</li> <li>list item 3</li> <li>list item 4</li> <li>list item 5</li> </ul>
We can apply this method to the set of list items:
$('li').not(':even').css('background-color', 'red');The result of this call is a red background for items 2 and 4, as they do not match the selector (recall that :even and :odd use 0-based indexing).
Removing Specific Elements
The second version of the
.not()method allows us to remove elements from the matched set, assuming we have found those elements previously by some other means. For example, suppose our list had an id applied to one of its items:<ul> <li>list item 1</li> <li>list item 2</li> <li id="notli">list item 3</li> <li>list item 4</li> <li>list item 5</li> </ul>
We can fetch the third list item using the native JavaScript
getElementById()function, then remove it from a jQuery object:$('li').not(document.getElementById('notli')) .css('background-color', 'red');This statement changes the color of items 1, 2, 4, and 5. We could have accomplished the same thing with a simpler jQuery expression, but this technique can be useful when, for example, other libraries provide references to plain DOM nodes.
As of jQuery 1.4, the
.not()method can take a function as its argument in the same way that.filter()does. Elements for which the function returnstrueare excluded from the filtered set; all other elements are included. -
- outerWidth
-
Signature
-
outerWidth([ Boolean ]) returns Integer
-
Boolean includeMargin :
A Boolean indicating whether to include the element's margin in the calculation.
-
Boolean includeMargin :
Description
Get the current computed width for the first element in the set of matched elements, including padding and border. Returns the width of the element, along with left and right padding, border, and optionally margin, in pixels.
If
includeMarginis omitted orfalse, the padding and border are included in the calculation; iftrue, the margin is also included.This method is not applicable to
windowanddocumentobjects; for these, use.width()instead.
-
- outerHeight
-
Signature
-
outerHeight([ Boolean ]) returns Integer
-
Boolean includeMargin :
A Boolean indicating whether to include the element's margin in the calculation.
-
Boolean includeMargin :
Description
Get the current computed height for the first element in the set of matched elements, including padding, border, and optionally margin. The top and bottom padding and border are always included in the
.outerHeight()calculation; if theincludeMarginargument is set totrue, the margin (top and bottom) is also included.This method is not applicable to
windowanddocumentobjects; for these, use.height()instead.
-
- toggle
-
Signatures
-
toggle([ String,Number ], [ Callback ]) returns jQuery
-
String,Number duration :
A string or number determining how long the animation will run. -
Callback callback :
A function to call once the animation is complete.
-
String,Number duration :
-
toggle([ String,Number ], [ String ], [ Callback ]) returns jQuery
-
String,Number duration :
A string or number determining how long the animation will run. -
String easing :
A string indicating which easing function to use for the transition. -
Callback callback :
A function to call once the animation is complete.
-
String,Number duration :
-
toggle(Boolean) returns jQuery
-
Boolean showOrHide :
A Boolean indicating whether to show or hide the elements.
-
Boolean showOrHide :
Description
Display or hide the matched elements. With no parameters, the
.toggle()method simply toggles the visibility of elements:$('.target').toggle();The matched elements will be revealed or hidden immediately, with no animation, by changing the CSS
displayproperty. If the element is initially displayed, it will be hidden; if hidden, it will be shown. Thedisplayproperty is saved and restored as needed. If an element has adisplayvalue ofinline, then is hidden and shown, it will once again be displayedinline.When a duration is provided,
.toggle()becomes an animation method. The.toggle()method animates the width, height, and opacity of the matched elements simultaneously. When these properties reach 0 after a hiding animation, thedisplaystyle property is set tononeto ensure that the element no longer affects the layout of the page.Durations are given in milliseconds; higher values indicate slower animations, not faster ones. The strings
'fast'and'slow'can be supplied to indicate durations of200and600milliseconds, respectively.Note: The event handling suite also has a method named .toggle(). Which one is fired depends on the set of arguments passed.
As of jQuery 1.4.3, an optional string naming an easing function may be used. Easing functions specify the speed at which the animation progresses at different points within the animation. The only easing implementations in the jQuery library are the default, called
swing, and one that progresses at a constant pace, calledlinear. More easing functions are available with the use of plug-ins, most notably the jQuery UI suite.If supplied, the callback is fired once the animation is complete. This can be useful for stringing different animations together in sequence. The callback is not sent any arguments, but
thisis set to the DOM element being animated. If multiple elements are animated, it is important to note that the callback is executed once per matched element, not once for the animation as a whole.We can animate any element, such as a simple image:
<div id="clickme"> Click here </div> <img id="book" src="book.png" alt="" width="100" height="123" />
We will cause
.toggle()to be called when another element is clicked:$('#clickme').click(function() { $('#book').toggle('slow', function() { // Animation complete. }); });With the element initially shown, we can hide it slowly with the first click:
A second click will show the element once again:
The second version of the method accepts a Boolean parameter. If this parameter is
true, then the matched elements are shown; iffalse, the elements are hidden. In essence, the statement:$('#foo').toggle(showOrHide);is equivalent to:
if ( showOrHide == true ) { $('#foo').show(); } else if ( showOrHide == false ) { $('#foo').hide(); } -
- innerWidth
-
Signature
-
innerWidth() returns Integer
Description
Get the current computed width for the first element in the set of matched elements, including padding but not border. This method returns the width of the element, including left and right padding, in pixels.
This method is not applicable to
windowanddocumentobjects; for these, use.width()instead.
-
- innerHeight
-
Signature
-
innerHeight() returns Integer
Description
Get the current computed height for the first element in the set of matched elements, including padding but not border. This method returns the height of the element, including top and bottom padding, in pixels.
This method is not applicable to
windowanddocumentobjects; for these, use.height()instead.
-
- jQuery.param
-
Signatures
-
jQuery.param(Array, Object) returns String
-
Array, Object obj :
An array or object to serialize.
-
Array, Object obj :
-
jQuery.param(Array, Object, Boolean) returns String
-
Array, Object obj :
An array or object to serialize. -
Boolean traditional :
A Boolean indicating whether to perform a traditional "shallow" serialization.
-
Array, Object obj :
Description
Create a serialized representation of an array or object, suitable for use in a URL query string or Ajax request. This function is used internally to convert form element values into a serialized string representation (See .serialize() for more information).
As of jQuery 1.3, the return value of a function is used instead of the function as a String.
As of jQuery 1.4, the
$.param()method serializes deep objects recursively to accommodate modern scripting languages and frameworks such as PHP and Ruby on Rails. You can disable this functionality globally by settingjQuery.ajaxSettings.traditional = true;.If the object passed is in an Array, it must be an array of objects in the format returned by .serializeArray()
[{name:"first",value:"Rick"}, {name:"last",value:"Astley"}, {name:"job",value:"Rock Star"}]Note: Because some frameworks have limited ability to parse serialized arrays, developers should exercise caution when passing an
objargument that contains objects or arrays nested within another array.Note: Because there is no universally agreed-upon specification for param strings, it is not possible to encode complex data structures using this method in a manner that works ideally across all languages supporting such input. Until such time that there is, the
$.parammethod will remain in its current form.In jQuery 1.4, HTML5 input elements are also serialized.
We can display a query string representation of an object and a URI-decoded version of the same as follows:
var myObject = { a: { one: 1, two: 2, three: 3 }, b: [1,2,3] }; var recursiveEncoded = $.param(myObject); var recursiveDecoded = decodeURIComponent($.param(myObject)); alert(recursiveEncoded); alert(recursiveDecoded);The values of
recursiveEncodedandrecursiveDecodedare alerted as follows:a%5Bone%5D=1&a%5Btwo%5D=2&a%5Bthree%5D=3&b%5B%5D=1&b%5B%5D=2&b%5B%5D=3
a[one]=1&a[two]=2&a[three]=3&b[]=1&b[]=2&b[]=3To emulate the behavior of
$.param()prior to jQuery 1.4, we can set thetraditionalargument totrue:var myObject = { a: { one: 1, two: 2, three: 3 }, b: [1,2,3] }; var shallowEncoded = $.param(myObject, true); var shallowDecoded = decodeURIComponent(shallowEncoded); alert(shallowEncoded); alert(shallowDecoded);The values of
shallowEncodedandshallowDecodedare alerted as follows:a=%5Bobject+Object%5D&b=1&b=2&b=3
a=[object+Object]&b=1&b=2&b=3 -
- hide
-
Signatures
-
hide() returns jQuery
-
hide(String,Number, [ Callback ]) returns jQuery
-
String,Number duration :
A string or number determining how long the animation will run. -
Callback callback :
A function to call once the animation is complete.
-
String,Number duration :
-
hide([ String,Number ], [ String ], [ Callback ]) returns jQuery
-
String,Number duration :
A string or number determining how long the animation will run. -
String easing :
A string indicating which easing function to use for the transition. -
Callback callback :
A function to call once the animation is complete.
-
String,Number duration :
Description
Hide the matched elements. With no parameters, the
.hide()method is the simplest way to hide an element:$('.target').hide();The matched elements will be hidden immediately, with no animation. This is roughly equivalent to calling
.css('display', 'none'), except that the value of thedisplayproperty is saved in jQuery's data cache so thatdisplaycan later be restored to its initial value. If an element has adisplayvalue ofinline, then is hidden and shown, it will once again be displayedinline.When a duration is provided,
.hide()becomes an animation method. The.hide()method animates the width, height, and opacity of the matched elements simultaneously. When these properties reach 0, thedisplaystyle property is set tononeto ensure that the element no longer affects the layout of the page.Durations are given in milliseconds; higher values indicate slower animations, not faster ones. The strings
'fast'and'slow'can be supplied to indicate durations of200and600milliseconds, respectively.As of jQuery 1.4.3, an optional string naming an easing function may be used. Easing functions specify the speed at which the animation progresses at different points within the animation. The only easing implementations in the jQuery library are the default, called
swing, and one that progresses at a constant pace, calledlinear. More easing functions are available with the use of plug-ins, most notably the jQuery UI suite.If supplied, the callback is fired once the animation is complete. This can be useful for stringing different animations together in sequence. The callback is not sent any arguments, but
thisis set to the DOM element being animated. If multiple elements are animated, it is important to note that the callback is executed once per matched element, not once for the animation as a whole.We can animate any element, such as a simple image:
<div id="clickme"> Click here </div> <img id="book" src="book.png" alt="" width="100" height="123" /> With the element initially shown, we can hide it slowly: $('#clickme').click(function() { $('#book').hide('slow', function() { alert('Animation complete.'); }); });
-
- width
-
Signature
-
width() returns Integer
Description
Get the current computed width for the first element in the set of matched elements. The difference between
.css(width)and.width()is that the latter returns a unit-less pixel value (for example,400) while the former returns a value with units intact (for example,400px). The.width()method is recommended when an element's width needs to be used in a mathematical calculation.
This method is also able to find the width of the window and document.
$(window).width(); // returns width of browser viewport $(document).width(); // returns width of HTML document
Note that
.width()will always return the content width, regardless of the value of the CSSbox-sizingproperty. -
- width
-
Signatures
-
width(String, Number) returns jQuery
-
String, Number value :
An integer representing the number of pixels, or an integer along with an optional unit of measure appended (as a string).
-
String, Number value :
-
width(Function) returns jQuery
-
Function function(index, width) :
A function returning the width to set. Receives the index position of the element in the set and the old width as arguments. Within the function, thisrefers to the current element in the set.
-
Function function(index, width) :
Description
Set the CSS width of each element in the set of matched elements. When calling
.width('value'), the value can be either a string (number and unit) or a number. If only a number is provided for the value, jQuery assumes a pixel unit. If a string is provided, however, any valid CSS measurement may be used for the width (such as100px,50%, orauto). Note that in modern browsers, the CSS width property does not include padding, border, or margin, unless thebox-sizingCSS property is used.If no explicit unit was specified (like 'em' or '%') then "px" is concatenated to the value.
Note that
.width('value')sets the width of the box in accordance with the CSSbox-sizingproperty. Changing this property toborder-boxwill cause this function to change the outerWidth of the box instead of the content width. -
- height
-
Signature
-
height() returns Integer
Description
Get the current computed height for the first element in the set of matched elements. The difference between
.css('height')and.height()is that the latter returns a unit-less pixel value (for example,400) while the former returns a value with units intact (for example,400px). The.height()method is recommended when an element's height needs to be used in a mathematical calculation.
This method is also able to find the height of the window and document.
$(window).height(); // returns height of browser viewport $(document).height(); // returns height of HTML document
Note that
.height()will always return the content height, regardless of the value of the CSSbox-sizingproperty. -
- height
-
Signatures
-
height(String, Number) returns jQuery
-
String, Number value :
An integer representing the number of pixels, or an integer with an optional unit of measure appended (as a string).
-
String, Number value :
-
height(Function) returns jQuery
-
Function function(index, height) :
A function returning the height to set. Receives the index position of the element in the set and the old height as arguments. Within the function, thisrefers to the current element in the set.
-
Function function(index, height) :
Description
Set the CSS height of every matched element. When calling
.height(value), the value can be either a string (number and unit) or a number. If only a number is provided for the value, jQuery assumes a pixel unit. If a string is provided, however, a valid CSS measurement must be provided for the height (such as100px,50%, orauto). Note that in modern browsers, the CSS height property does not include padding, border, or margin.If no explicit unit was specified (like 'em' or '%') then "px" is concatenated to the value.
Note that
.height(value)sets the height of the box in accordance with the CSSbox-sizingproperty. Changing this property toborder-boxwill cause this function to change the outerHeight of the box instead of the content height. -
- show
-
Signatures
-
show() returns jQuery
-
show(String,Number, [ Callback ]) returns jQuery
-
String,Number duration :
A string or number determining how long the animation will run. -
Callback callback :
A function to call once the animation is complete.
-
String,Number duration :
-
show([ String,Number ], [ String ], [ Callback ]) returns jQuery
-
String,Number duration :
A string or number determining how long the animation will run. -
String easing :
A string indicating which easing function to use for the transition. -
Callback callback :
A function to call once the animation is complete.
-
String,Number duration :
Description
Display the matched elements. With no parameters, the
.show()method is the simplest way to display an element:$('.target').show();The matched elements will be revealed immediately, with no animation. This is roughly equivalent to calling
.css('display', 'block'), except that thedisplayproperty is restored to whatever it was initially. If an element has adisplayvalue ofinline, then is hidden and shown, it will once again be displayedinline.Note: If using !important in your styles, such as
display: none !important, it is necessary to override the style using.css('display', 'block !important')should you wish for.show()to function correctly.When a duration is provided,
.show()becomes an animation method. The.show()method animates the width, height, and opacity of the matched elements simultaneously.Durations are given in milliseconds; higher values indicate slower animations, not faster ones. The strings
'fast'and'slow'can be supplied to indicate durations of200and600milliseconds, respectively.As of jQuery 1.4.3, an optional string naming an easing function may be used. Easing functions specify the speed at which the animation progresses at different points within the animation. The only easing implementations in the jQuery library are the default, called
swing, and one that progresses at a constant pace, calledlinear. More easing functions are available with the use of plug-ins, most notably the jQuery UI suite.If supplied, the callback is fired once the animation is complete. This can be useful for stringing different animations together in sequence. The callback is not sent any arguments, but
thisis set to the DOM element being animated. If multiple elements are animated, it is important to note that the callback is executed once per matched element, not once for the animation as a whole.We can animate any element, such as a simple image:
<div id="clickme"> Click here </div> <img id="book" src="book.png" alt="" width="100" height="123" /> With the element initially hidden, we can show it slowly: $('#clickme').click(function() { $('#book').show('slow', function() { // Animation complete. }); });
-
- scrollLeft
-
Signature
-
scrollLeft() returns Integer
Description
Get the current horizontal position of the scroll bar for the first element in the set of matched elements. The horizontal scroll position is the same as the number of pixels that are hidden from view above the scrollable area. If the scroll bar is at the very left, or if the element is not scrollable, this number will be
0.Note:
.scrollLeft(), when called directly or animated as a property using.animate()will not work if the element(s) it is being applied to are hidden. -
- scrollLeft
-
Signature
-
scrollLeft(Number) returns jQuery
-
Number value :
An integer indicating the new position to set the scroll bar to.
-
Number value :
Description
Set the current horizontal position of the scroll bar for each of the set of matched elements. The horizontal scroll position is the same as the number of pixels that are hidden from view above the scrollable area. Setting the
scrollLeftpositions the horizontal scroll of each matched element. -
- jQuery.trim
-
Signature
-
jQuery.trim(String) returns String
-
String str :
The string to trim.
-
String str :
Description
Remove the whitespace from the beginning and end of a string. The
$.trim()function removes all newlines, spaces (including non-breaking spaces), and tabs from the beginning and end of the supplied string. If these whitespace characters occur in the middle of the string, they are preserved. -
- jQuery.isFunction
-
Signature
-
jQuery.isFunction(Object) returns boolean
-
Object obj :
Object to test whether or not it is a function.
-
Object obj :
Description
Determine if the argument passed is a Javascript function object. Note: As of jQuery 1.3, functions provided by the browser like
alert()and DOM element methods likegetAttribute()are not guaranteed to be detected as functions in browsers such as Internet Explorer. -
- jQuery.isArray
-
Signature
-
jQuery.isArray(Object) returns boolean
-
Object obj :
Object to test whether or not it is an array.
-
Object obj :
Description
Determine whether the argument is an array. $.isArray()returns a Boolean indicating whether the object is a JavaScript array (not an array-like object, such as a jQuery object). -
- jQuery.unique
-
Signature
-
jQuery.unique(Array) returns Array
-
Array array :
The Array of DOM elements.
-
Array array :
Description
Sorts an array of DOM elements, in place, with the duplicates removed. Note that this only works on arrays of DOM elements, not strings or numbers. The
$.unique()function searches through an array of objects, sorting the array, and removing any duplicate nodes. This function only works on plain JavaScript arrays of DOM elements, and is chiefly used internally by jQuery.As of jQuery 1.4 the results will always be returned in document order.
-
- jQuery.merge
-
Signature
-
jQuery.merge(Array, Array) returns Array
-
Array first :
The first array to merge, the elements of second added. -
Array second :
The second array to merge into the first, unaltered.
-
Array first :
Description
Merge the contents of two arrays together into the first array. The
$.merge()operation forms an array that contains all elements from the two arrays. The orders of items in the arrays are preserved, with items from the second array appended. The$.merge()function is destructive. It alters the first parameter to add the items from the second.If you need the original first array, make a copy of it before calling
$.merge(). Fortunately,$.merge()itself can be used for this duplication:var newArray = $.merge([], oldArray);
This shortcut creates a new, empty array and merges the contents of oldArray into it, effectively cloning the array.
Prior to jQuery 1.4, the arguments should be true Javascript Array objects; use
$.makeArrayif they are not. -
- jQuery.inArray
-
Signature
-
jQuery.inArray(Any, Array, [ Number ]) returns Number
-
Any value :
The value to search for. -
Array array :
An array through which to search. -
Number fromIndex :
The index of the array at which to begin the search. The default is 0, which will search the whole array.
-
Any value :
Description
Search for a specified value within an array and return its index (or -1 if not found). The
$.inArray()method is similar to JavaScript's native.indexOf()method in that it returns -1 when it doesn't find a match. If the first element within the array matchesvalue,$.inArray()returns 0.Because JavaScript treats 0 as loosely equal to false (i.e. 0 == false, but 0 !== false), if we're checking for the presence of
valuewithinarray, we need to check if it's not equal to (or greater than) -1. -
- jQuery.map
-
Signatures
-
jQuery.map(Array, Function) returns Array
-
Array array :
The Array to translate. -
Function callback(elementOfArray, indexInArray) :
The function to process each item against. The first argument to the function is the array item, the second argument is the index in array The function can return any value. Within the function, thisrefers to the global (window) object.
-
Array array :
-
jQuery.map(Array,Object, Function) returns Array
-
Array,Object arrayOrObject :
The Array or Object to translate. -
Function callback( value, indexOrKey ) :
The function to process each item against. The first argument to the function is the value; the second argument is the index or key of the array or object property. The function can return any value to add to the array. A returned array will be flattened into the resulting array. Within the function, thisrefers to the global (window) object.
-
Array,Object arrayOrObject :
Description
Translate all items in an array or object to new array of items. The
$.map()method applies a function to each item in an array or object and maps the results into a new array. Prior to jQuery 1.6,$.map()supports traversing arrays only. As of jQuery 1.6 it also traverses objects.Array-like objects — those with a
.lengthproperty and a value on the.length - 1index — must be converted to actual arrays before being passed to$.map(). The jQuery library provides $.makeArray() for such conversions.// The following object masquerades as an array. var fakeArray = {"length": 1, 0: "Addy", 1: "Subtracty"}; // Therefore, convert it to a real array var realArray = $.makeArray( fakeArray ) // Now it can be used reliably with $.map() $.map( realArray, function(val, i) { // do something });The translation function that is provided to this method is called for each top-level element in the array or object and is passed two arguments: The element's value and its index or key within the array or object.
The function can return:
- the translated value, which will be mapped to the resulting array
-
null, to remove the item - an array of values, which will be flattened into the full array
-
- jQuery.makeArray
-
Signature
-
jQuery.makeArray(Object) returns Array
-
Object obj :
Any object to turn into a native Array.
-
Object obj :
Description
Convert an array-like object into a true JavaScript array. Many methods, both in jQuery and in JavaScript in general, return objects that are array-like. For example, the jQuery factory function
$()returns a jQuery object that has many of the properties of an array (a length, the[]array access operator, etc.), but is not exactly the same as an array and lacks some of an array's built-in methods (such as.pop()and.reverse()).Note that after the conversion, any special features the object had (such as the jQuery methods in our example) will no longer be present. The object is now a plain array.
-
- jQuery.grep
-
Signature
-
jQuery.grep(Array, Function, [ Boolean ]) returns Array
-
Array array :
The array to search through. -
Function function(elementOfArray, indexInArray) :
The function to process each item against. The first argument to the function is the item, and the second argument is the index. The function should return a Boolean value. thiswill be the global window object. -
Boolean invert :
If "invert" is false, or not provided, then the function returns an array consisting of all elements for which "callback" returns true. If "invert" is true, then the function returns an array consisting of all elements for which "callback" returns false.
-
Array array :
Description
Finds the elements of an array which satisfy a filter function. The original array is not affected. The
$.grep()method removes items from an array as necessary so that all remaining items pass a provided test. The test is a function that is passed an array item and the index of the item within the array. Only if the test returns true will the item be in the result array.The filter function will be passed two arguments: the current array item and its index. The filter function must return 'true' to include the item in the result array.
-
- jQuery.extend
-
Signatures
-
jQuery.extend(Object, [ Object ], [ Object ]) returns Object
-
Object target :
An object that will receive the new properties if additional objects are passed in or that will extend the jQuery namespace if it is the sole argument. -
Object object1 :
An object containing additional properties to merge in. -
Object objectN :
Additional objects containing properties to merge in.
-
Object target :
-
jQuery.extend([ Boolean ], Object, Object, [ Object ]) returns Object
-
Boolean deep :
If true, the merge becomes recursive (aka. deep copy). -
Object target :
The object to extend. It will receive the new properties. -
Object object1 :
An object containing additional properties to merge in. -
Object objectN :
Additional objects containing properties to merge in.
-
Boolean deep :
Description
Merge the contents of two or more objects together into the first object. When we supply two or more objects to
$.extend(), properties from all of the objects are added to the target object.If only one argument is supplied to
$.extend(), this means the target argument was omitted. In this case, the jQuery object itself is assumed to be the target. By doing this, we can add new functions to the jQuery namespace. This can be useful for plugin authors wishing to add new methods to JQuery.Keep in mind that the target object (first argument) will be modified, and will also be returned from
$.extend(). If, however, we want to preserve both of the original objects, we can do so by passing an empty object as the target:var object = $.extend({}, object1, object2);The merge performed by
$.extend()is not recursive by default; if a property of the first object is itself an object or array, it will be completely overwritten by a property with the same key in the second object. The values are not merged. This can be seen in the example below by examining the value of banana. However, by passingtruefor the first function argument, objects will be recursively merged.Undefined properties are not copied. However, properties inherited from the object's prototype will be copied over. For performance reasons, properties that have values of built-in JavaScript types such as Date or RegExp are not re-constructed, and will appear as plain Objects in the resulting object or array.
Note: When performing a deep extend, Object and Array are extended, however primitive types such string, boolean and number are not. For specific needs that fall outside of this behaviour, it is recommended to write a custom extend method as this will be significantly faster from a performance perspective.
-
- jQuery.each
-
Signature
-
jQuery.each(Object, Function) returns Object
-
Object collection :
The object or array to iterate over. -
Function callback(indexInArray, valueOfElement) :
The function that will be executed on every object.
-
Object collection :
Description
A generic iterator function, which can be used to seamlessly iterate over both objects and arrays. Arrays and array-like objects with a length property (such as a function's arguments object) are iterated by numeric index, from 0 to length-1. Other objects are iterated via their named properties. The
$.each()function is not the same as $(selector).each(), which is used to iterate, exclusively, over a jQuery object. The$.each()function can be used to iterate over any collection, whether it is a map (JavaScript object) or an array. In the case of an array, the callback is passed an array index and a corresponding array value each time. (The value can also be accessed through thethiskeyword, but Javascript will always wrap thethisvalue as anObjecteven if it is a simple string or number value.) The method returns its first argument, the object that was iterated.$.each([52, 97], function(index, value) { alert(index + ': ' + value); });This produces two messages:
0: 52
1: 97If a map is used as the collection, the callback is passed a key-value pair each time:
var map = { 'flammable': 'inflammable', 'duh': 'no duh' }; $.each(map, function(key, value) { alert(key + ': ' + value); });Once again, this produces two messages:
flammable: inflammable
duh: no duhWe can break the
$.each()loop at a particular iteration by making the callback function returnfalse. Returning non-false is the same as acontinuestatement in a for loop; it will skip immediately to the next iteration. -
- jQuery.boxModel
-
Description
Deprecated in jQuery 1.3 (see jQuery.support). States if the current page, in the user's browser, is being rendered using the W3C CSS Box Model.
- scrollTop
-
Signature
-
scrollTop() returns Integer
Description
Get the current vertical position of the scroll bar for the first element in the set of matched elements. The vertical scroll position is the same as the number of pixels that are hidden from view above the scrollable area. If the scroll bar is at the very top, or if the element is not scrollable, this number will be
0. -
- scrollTop
-
Signature
-
scrollTop(Number) returns jQuery
-
Number value :
An integer indicating the new position to set the scroll bar to.
-
Number value :
Description
Set the current vertical position of the scroll bar for each of the set of matched elements. The vertical scroll position is the same as the number of pixels that are hidden from view above the scrollable area. Setting the
scrollToppositions the vertical scroll of each matched element. -
- jQuery.support
-
Description
A collection of properties that represent the presence of different browser features or bugs. Rather than using
$.browserto detect the current user agent and alter the page presentation based on which browser is running, it is a good practice to perform feature detection. This means that prior to executing code which relies on a browser feature, we test to ensure that the feature works properly. To make this process simpler, jQuery performs many such tests and makes the results available to us as properties of thejQuery.supportobject.The values of all the support properties are determined using feature detection (and do not use any form of browser sniffing).
Following are a few resources that explain how feature detection works:
While jQuery includes a number of properties, developers should feel free to add their own as their needs dictate. Many of the
jQuery.supportproperties are rather low-level, so they are most useful for plugin and jQuery core development, rather than general day-to-day development. Since jQuery requires these tests internally, they must be performed on every page load; for that reason this list is kept short and limited to features needed by jQuery itself.The tests included in
jQuery.supportare as follows:-
ajaxis equal to true if a browser is able to create anXMLHttpRequestobject. -
boxModelis equal to true if the page is rendering according to the W3C CSS Box Model (is currently false in IE 6 and 7 when they are in Quirks Mode). This property is null until document ready occurs. -
changeBubblesis equal to true if the change event bubbles up the DOM tree, as required by the W3C DOM event model. (It is currently false in IE, and jQuery simulates bubbling). -
checkCloneis equal to true if a browser correctly clones the checked state of radio buttons or checkboxes in document fragments. -
checkOnis equal to true if the value of a checkbox defaults to "on" when no value is specified. -
corsis equal to true if a browser can create anXMLHttpRequestobject and if thatXMLHttpRequestobject has awithCredentialsproperty. To enable cross-domain requests in environments that do not support cors yet but do allow cross-domain XHR requests (windows gadget, etc), set$.support.cors = true;. CORS WD -
cssFloatis equal to true if the name of the property containing the CSS float value is .cssFloat, as defined in the CSS Spec. (It is currently false in IE, it uses styleFloat instead). -
hrefNormalizedis equal to true if the.getAttribute()method retrieves thehrefattribute of elements unchanged, rather than normalizing it to a fully-qualified URL. (It is currently false in IE, the URLs are normalized). -
htmlSerializeis equal to true if the browser is able to serialize/insert<link>elements using the.innerHTMLproperty of elements. (is currently false in IE). -
leadingWhitespaceis equal to true if the browser inserts content with .innerHTML exactly as provided—specifically, if leading whitespace characters are preserved. (It is currently false in IE 6-8). -
noCloneCheckedis equal to true if cloned DOM elements copy over the state of the.checkedexpando. (It is currently false in IE). (Added in jQuery 1.5.1) -
noCloneEventis equal to true if cloned DOM elements are created without event handlers (that is, if the event handlers on the source element are not cloned). (It is currently false in IE). -
opacityis equal to true if a browser can properly interpret the opacity style property. (It is currently false in IE, it uses alpha filters instead). -
optDisabledis equal to true if option elements within disabled select elements are not automatically marked as disabled. -
optSelectedis equal to true if an<option>element that is selected by default has a workingselectedproperty. -
scriptEval()is equal to true if inline scripts are automatically evaluated and executed when inserted into the document using standard DOM manipulation methods such as.appendChild()and.createTextNode(). (It is currently false in IE, it uses.textto insert executable scripts).Note: No longer supported; removed in jQuery 1.6. Prior to jQuery 1.5.1, thescriptEval()method was the staticscriptEvalproperty. The change to a method allowed the test to be deferred until first use to prevent content security policy inline-script violations. -
styleis equal to true if inline styles for an element can be accessed through the DOM attribute called style, as required by the DOM Level 2 specification. In this case,.getAttribute('style')can retrieve this value; in Internet Explorer,.cssTextis used for this purpose. -
submitBubblesis equal to true if the submit event bubbles up the DOM tree, as required by the W3C DOM event model. (It is currently false in IE, and jQuery simulates bubbling). -
tbodyis equal to true if an empty<table>element can exist without a<tbody>element. According to the HTML specification, this sub-element is optional, so the property should be true in a fully-compliant browser. If false, we must account for the possibility of the browser injecting<tbody>tags implicitly. (It is currently false in IE, which automatically insertstbodyif it is not present in a string assigned toinnerHTML).
-
- position
-
Signature
-
position() returns Object
Description
Get the current coordinates of the first element in the set of matched elements, relative to the offset parent. The
.position()method allows us to retrieve the current position of an element relative to the offset parent. Contrast this with.offset(), which retrieves the current position relative to the document. When positioning a new element near another one and within the same containing DOM element,.position()is the more useful.Returns an object containing the properties
topandleft. -
- offset
-
Signature
-
offset() returns Object
Description
Get the current coordinates of the first element in the set of matched elements, relative to the document. The
.offset()method allows us to retrieve the current position of an element relative to the document. Contrast this with.position(), which retrieves the current position relative to the offset parent. When positioning a new element on top of an existing one for global manipulation (in particular, for implementing drag-and-drop),.offset()is the more useful..offset()returns an object containing the propertiestopandleft.Note: jQuery does not support getting the offset coordinates of hidden elements or accounting for borders, margins, or padding set on the body element.
-
- offset
-
Signatures
-
offset(Object) returns jQuery
-
Object coordinates :
An object containing the properties topandleft, which are integers indicating the new top and left coordinates for the elements.
-
Object coordinates :
-
offset(Function) returns jQuery
-
Function function(index, coords) :
A function to return the coordinates to set. Receives the index of the element in the collection as the first argument and the current coordinates as the second argument. The function should return an object with the new topandleftproperties.
-
Function function(index, coords) :
Description
Set the current coordinates of every element in the set of matched elements, relative to the document. The
.offset()setter method allows us to reposition an element. The element's position is specified relative to the document. If the element'spositionstyle property is currentlystatic, it will be set torelativeto allow for this repositioning. -
- css
-
Signature
-
css(String) returns String
-
String propertyName :
A CSS property.
-
String propertyName :
Description
Get the value of a style property for the first element in the set of matched elements. The
.css()method is a convenient way to get a style property from the first matched element, especially in light of the different ways browsers access most of those properties (thegetComputedStyle()method in standards-based browsers versus thecurrentStyleandruntimeStyleproperties in Internet Explorer) and the different terms browsers use for certain properties. For example, Internet Explorer's DOM implementation refers to thefloatproperty asstyleFloat, while W3C standards-compliant browsers refer to it ascssFloat. The.css()method accounts for such differences, producing the same result no matter which term we use. For example, an element that is floated left will return the stringleftfor each of the following three lines:$('div.left').css('float');$('div.left').css('cssFloat');$('div.left').css('styleFloat');
Also, jQuery can equally interpret the CSS and DOM formatting of multiple-word properties. For example, jQuery understands and returns the correct value for both
.css('background-color')and.css('backgroundColor'). Different browsers may return CSS color values that are logically but not textually equal, e.g., #FFF, #ffffff, and rgb(255,255,255).Shorthand CSS properties (e.g. margin, background, border) are not supported. For example, if you want to retrieve the rendered margin, use:
$(elem).css('marginTop')and$(elem).css('marginRight'), and so on. -
- css
-
Signatures
-
css(String, String, Number) returns jQuery
-
String propertyName :
A CSS property name. -
String, Number value :
A value to set for the property.
-
String propertyName :
-
css(String, Function) returns jQuery
-
String propertyName :
A CSS property name. -
Function function(index, value) :
A function returning the value to set. thisis the current element. Receives the index position of the element in the set and the old value as arguments.
-
String propertyName :
-
css(Map) returns jQuery
-
Map map :
A map of property-value pairs to set.
-
Map map :
Description
Set one or more CSS properties for the set of matched elements. As with the
.prop()method, the.css()method makes setting properties of elements quick and easy. This method can take either a property name and value as separate parameters, or a single map of key-value pairs (JavaScript object notation).Also, jQuery can equally interpret the CSS and DOM formatting of multiple-word properties. For example, jQuery understands and returns the correct value for both
.css({'background-color': '#ffe', 'border-left': '5px solid #ccc'})and.css({backgroundColor: '#ffe', borderLeft: '5px solid #ccc'}). Notice that with the DOM notation, quotation marks around the property names are optional, but with CSS notation they're required due to the hyphen in the name.When using
.css()as a setter, jQuery modifies the element'sstyleproperty. For example,$('#mydiv').css('color', 'green')is equivalent todocument.getElementById('mydiv').style.color = 'green'. Setting the value of a style property to an empty string — e.g.$('#mydiv').css('color', '')— removes that property from an element if it has already been directly applied, whether in the HTML style attribute, through jQuery's.css()method, or through direct DOM manipulation of thestyleproperty. It does not, however, remove a style that has been applied with a CSS rule in a stylesheet or<style>element.As of jQuery 1.6,
.css()accepts relative values similar to.animate(). Relative values are a string starting with+=or-=to increment or decrement the current value. For example, if an element's padding-left was 10px,.css( "padding-left", "+=15" )would result in a total padding-left of 25px.As of jQuery 1.4,
.css()allows us to pass a function as the property value:$('div.example').css('width', function(index) { return index * 50; });This example sets the widths of the matched elements to incrementally larger values.
Note: If nothing is returned in the setter function (ie.
function(index, style){}), or ifundefinedis returned, the current value is not changed. This is useful for selectively setting values only when certain criteria are met. -
- unwrap
-
Signature
-
unwrap() returns jQuery
Description
Remove the parents of the set of matched elements from the DOM, leaving the matched elements in their place. The
.unwrap()method removes the element's parent. This is effectively the inverse of the.wrap()method. The matched elements (and their siblings, if any) replace their parents within the DOM structure. -
- detach
-
Signature
-
detach([ Selector ]) returns jQuery
-
Selector selector :
A selector expression that filters the set of matched elements to be removed.
-
Selector selector :
Description
Remove the set of matched elements from the DOM. The
.detach()method is the same as.remove(), except that.detach()keeps all jQuery data associated with the removed elements. This method is useful when removed elements are to be reinserted into the DOM at a later time. -
- clone
-
Signatures
-
clone([ Boolean ]) returns jQuery
-
Boolean withDataAndEvents :
A Boolean indicating whether event handlers should be copied along with the elements. As of jQuery 1.4, element data will be copied as well.
-
Boolean withDataAndEvents :
-
clone([ Boolean ], [ Boolean ]) returns jQuery
-
Boolean withDataAndEvents :
A Boolean indicating whether event handlers and data should be copied along with the elements. The default value is false. *In jQuery 1.5.0 the default value was incorrectlytrue; it was changed back tofalsein 1.5.1 and up. -
Boolean deepWithDataAndEvents :
A Boolean indicating whether event handlers and data for all children of the cloned element should be copied. By default its value matches the first argument's value (which defaults to false).
-
Boolean withDataAndEvents :
Description
Create a deep copy of the set of matched elements. The
.clone()method performs a deep copy of the set of matched elements, meaning that it copies the matched elements as well as all of their descendant elements and text nodes. When used in conjunction with one of the insertion methods,.clone()is a convenient way to duplicate elements on a page. Consider the following HTML:<div class="container"> <div class="hello">Hello</div> <div class="goodbye">Goodbye</div> </div>
As shown in the discussion for
.append(), normally when an element is inserted somewhere in the DOM, it is moved from its old location. So, given the code:$('.hello').appendTo('.goodbye');The resulting DOM structure would be:
<div class="container"> <div class="goodbye"> Goodbye <div class="hello">Hello</div> </div> </div>To prevent this and instead create a copy of the element, you could write the following:
$('.hello').clone().appendTo('.goodbye');This would produce:
<div class="container"> <div class="hello">Hello</div> <div class="goodbye"> Goodbye <div class="hello">Hello</div> </div> </div>Note that when using the
.clone()method, you can modify the cloned elements or their contents before (re-)inserting them into the document.Normally, any event handlers bound to the original element are not copied to the clone. The optional
withDataAndEventsparameter allows us to change this behavior, and to instead make copies of all of the event handlers as well, bound to the new copy of the element. As of jQuery 1.4, all element data (attached by the.data()method) is also copied to the new copy.However, objects and arrays within element data are not copied and will continue to be shared between the cloned element and the original element. To deep copy all data, copy each one manually:
var $elem = $('#elem').data( "arr": [ 1 ] ), // Original element with attached data $clone = $elem.clone( true ) .data( "arr", $.extend( [], $elem.data("arr") ) ); // Deep copy to prevent data sharingAs of jQuery 1.5,
withDataAndEventscan be optionally enhanced withdeepWithDataAndEventsto copy the events and data for all children of the cloned element. -
- remove
-
Signature
-
remove([ String ]) returns jQuery
-
String selector :
A selector expression that filters the set of matched elements to be removed.
-
String selector :
Description
Remove the set of matched elements from the DOM. Similar to
.empty(), the.remove()method takes elements out of the DOM. Use.remove()when you want to remove the element itself, as well as everything inside it. In addition to the elements themselves, all bound events and jQuery data associated with the elements are removed. To remove the elements without removing data and events, use.detach()instead.Consider the following HTML:
<div class="container"> <div class="hello">Hello</div> <div class="goodbye">Goodbye</div> </div>
We can target any element for removal:
$('.hello').remove();This will result in a DOM structure with the
<div>element deleted:<div class="container"> <div class="goodbye">Goodbye</div> </div>
If we had any number of nested elements inside
<div class="hello">, they would be removed, too. Other jQuery constructs such as data or event handlers are erased as well.We can also include a selector as an optional parameter. For example, we could rewrite the previous DOM removal code as follows:
$('div').remove('.hello');This would result in the same DOM structure:
<div class="container"> <div class="goodbye">Goodbye</div> </div>
-
- empty
-
Signature
-
empty() returns jQuery
Description
Remove all child nodes of the set of matched elements from the DOM. This method removes not only child (and other descendant) elements, but also any text within the set of matched elements. This is because, according to the DOM specification, any string of text within an element is considered a child node of that element. Consider the following HTML:
<div class="container"> <div class="hello">Hello</div> <div class="goodbye">Goodbye</div> </div>
We can target any element for removal:
$('.hello').empty();This will result in a DOM structure with the
Hellotext deleted:<div class="container"> <div class="hello"></div> <div class="goodbye">Goodbye</div> </div>
If we had any number of nested elements inside
<div class="hello">, they would be removed, too.To avoid memory leaks, jQuery removes other constructs such as data and event handlers from the child elements before removing the elements themselves.
-
- replaceAll
-
Signature
-
replaceAll(Selector) returns jQuery
-
Selector target :
A selector expression indicating which element(s) to replace.
-
Selector target :
Description
Replace each target element with the set of matched elements. The
.replaceAll()method is corollary to.replaceWith(), but with the source and target reversed. Consider this DOM structure:<div class="container"> <div class="inner first">Hello</div> <div class="inner second">And</div> <div class="inner third">Goodbye</div> </div>
We can create an element, then replace other elements with it:
$('<h2>New heading</h2>').replaceAll('.inner');This causes all of them to be replaced:
<div class="container"> <h2>New heading</h2> <h2>New heading</h2> <h2>New heading</h2> </div>
Or, we could select an element to use as the replacement:
$('.first').replaceAll('.third');This results in the DOM structure:
<div class="container"> <div class="inner second">And</div> <div class="inner first">Hello</div> </div>
From this example, we can see that the selected element replaces the target by being moved from its old location, not by being cloned.
-
- replaceWith
-
Signatures
-
replaceWith(String, Element, jQuery) returns jQuery
-
String, Element, jQuery newContent :
The content to insert. May be an HTML string, DOM element, or jQuery object.
-
String, Element, jQuery newContent :
-
replaceWith(Function) returns jQuery
-
Function function :
A function that returns content with which to replace the set of matched elements.
-
Function function :
Description
Replace each element in the set of matched elements with the provided new content. The
.replaceWith()method removes content from the DOM and inserts new content in its place with a single call. Consider this DOM structure:<div class="container"> <div class="inner first">Hello</div> <div class="inner second">And</div> <div class="inner third">Goodbye</div> </div>
The second inner
<div>could be replaced with the specified HTML:$('div.second').replaceWith('<h2>New heading</h2>');This results in the structure:
<div class="container"> <div class="inner first">Hello</div> <h2>New heading</h2> <div class="inner third">Goodbye</div> </div>
All inner
<div>elements could be targeted at once:$('div.inner').replaceWith('<h2>New heading</h2>');This causes all of them to be replaced:
<div class="container"> <h2>New heading</h2> <h2>New heading</h2> <h2>New heading</h2> </div>
An element could also be selected as the replacement:
$('div.third').replaceWith($('.first'));This results in the DOM structure:
<div class="container"> <div class="inner second">And</div> <div class="inner first">Hello</div> </div>
This example demonstrates that the selected element replaces the target by being moved from its old location, not by being cloned.
The
.replaceWith()method, like most jQuery methods, returns the jQuery object so that other methods can be chained onto it. However, it must be noted that the original jQuery object is returned. This object refers to the element that has been removed from the DOM, not the new element that has replaced it.As of jQuery 1.4,
.replaceWith()can also work on disconnected DOM nodes. For example, with the following code,.replaceWith()returns a jQuery set containing only a paragraph.:$("<div/>").replaceWith("<p></p>");The
.replaceWith()method can also take a function as its argument:$('div.container').replaceWith(function() { return $(this).contents(); });This results in
<div class="container">being replaced by its three child<div>s. The return value of the function may be an HTML string, DOM element, or jQuery object. -
- wrapInner
-
Signatures
-
wrapInner(String) returns jQuery
-
String wrappingElement :
An HTML snippet, selector expression, jQuery object, or DOM element specifying the structure to wrap around the content of the matched elements.
-
String wrappingElement :
-
wrapInner(Function) returns jQuery
-
Function function(index) :
A callback function which generates a structure to wrap around the content of the matched elements. Receives the index position of the element in the set as an argument. Within the function, thisrefers to the current element in the set.
-
Function function(index) :
Description
Wrap an HTML structure around the content of each element in the set of matched elements. The
.wrapInner()function can take any string or object that could be passed to the$()factory function to specify a DOM structure. This structure may be nested several levels deep, but should contain only one inmost element. The structure will be wrapped around the content of each of the elements in the set of matched elements.Consider the following HTML:
<div class="container"> <div class="inner">Hello</div> <div class="inner">Goodbye</div> </div>
Using
.wrapInner(), we can insert an HTML structure around the content of each inner<div>elements like so:$('.inner').wrapInner('<div class="new" />');The new
<div>element is created on the fly and added to the DOM. The result is a new<div>wrapped around the content of each matched element:<div class="container"> <div class="inner"> <div class="new">Hello</div> </div> <div class="inner"> <div class="new">Goodbye</div> </div> </div>The second version of this method allows us to instead specify a callback function. This callback function will be called once for every matched element; it should return a DOM element, jQuery object, or HTML snippet in which to wrap the content of the corresponding element. For example:
$('.inner').wrapInner(function() { return '<div class="' + this.nodeValue + '" />'; });This will cause each
<div>to have a class corresponding to the text it wraps:<div class="container"> <div class="inner"> <div class="Hello">Hello</div> </div> <div class="inner"> <div class="Goodbye">Goodbye</div> </div> </div>Note: When passing a selector string to the
.wrapInner()function, the expected input is well formed HTML with correctly closed tags. Examples of valid input include:$(elem).wrapInner("<div class='test' />"); $(elem).wrapInner("<div class='test'></div>"); $(elem).wrapInner("<div class=\"test\"></div>"); -
- wrapAll
-
Signature
-
wrapAll(String, Selector, Element, jQuery) returns jQuery
-
String, Selector, Element, jQuery wrappingElement :
An HTML snippet, selector expression, jQuery object, or DOM element specifying the structure to wrap around the matched elements.
-
String, Selector, Element, jQuery wrappingElement :
Description
Wrap an HTML structure around all elements in the set of matched elements. The
.wrapAll()function can take any string or object that could be passed to the$()function to specify a DOM structure. This structure may be nested several levels deep, but should contain only one inmost element. The structure will be wrapped around all of the elements in the set of matched elements, as a single group.Consider the following HTML:
<div class="container"> <div class="inner">Hello</div> <div class="inner">Goodbye</div> </div>
Using
.wrapAll(), we can insert an HTML structure around the inner<div>elements like so:$('.inner').wrapAll('<div class="new" />');The new
<div>element is created on the fly and added to the DOM. The result is a new<div>wrapped around all matched elements:<div class="container"> <div class="new"> <div class="inner">Hello</div> <div class="inner">Goodbye</div> </div> </div> -
- wrap
-
Signatures
-
wrap(String, Selector, Element, jQuery) returns jQuery
-
String, Selector, Element, jQuery wrappingElement :
An HTML snippet, selector expression, jQuery object, or DOM element specifying the structure to wrap around the matched elements.
-
String, Selector, Element, jQuery wrappingElement :
-
wrap(Function) returns jQuery
-
Function function(index) :
A callback function returning the HTML content or jQuery object to wrap around the matched elements. Receives the index position of the element in the set as an argument. Within the function, thisrefers to the current element in the set.
-
Function function(index) :
Description
Wrap an HTML structure around each element in the set of matched elements. The
.wrap()function can take any string or object that could be passed to the$()factory function to specify a DOM structure. This structure may be nested several levels deep, but should contain only one inmost element. A copy of this structure will be wrapped around each of the elements in the set of matched elements. This method returns the original set of elements for chaining purposes.Consider the following HTML:
<div class="container"> <div class="inner">Hello</div> <div class="inner">Goodbye</div> </div>
Using
.wrap(), we can insert an HTML structure around the inner<div>elements like so:$('.inner').wrap('<div class="new" />');The new
<div>element is created on the fly and added to the DOM. The result is a new<div>wrapped around each matched element:<div class="container"> <div class="new"> <div class="inner">Hello</div> </div> <div class="new"> <div class="inner">Goodbye</div> </div> </div>The second version of this method allows us to instead specify a callback function. This callback function will be called once for every matched element; it should return a DOM element, jQuery object, or HTML snippet in which to wrap the corresponding element. For example:
$('.inner').wrap(function() { return '<div class="' + $(this).text() + '" />'; });This will cause each
<div>to have a class corresponding to the text it wraps:<div class="container"> <div class="Hello"> <div class="inner">Hello</div> </div> <div class="Goodbye"> <div class="inner">Goodbye</div> </div> </div> -
- insertBefore
-
Signature
-
insertBefore(Selector, Element, jQuery) returns jQuery
-
Selector, Element, jQuery target :
A selector, element, HTML string, or jQuery object; the matched set of elements will be inserted before the element(s) specified by this parameter.
-
Selector, Element, jQuery target :
Description
Insert every element in the set of matched elements before the target. The
.before()and.insertBefore()methods perform the same task. The major difference is in the syntax-specifically, in the placement of the content and target. With.before(), the selector expression preceding the method is the container before which the content is inserted. With.insertBefore(), on the other hand, the content precedes the method, either as a selector expression or as markup created on the fly, and it is inserted before the target container.Consider the following HTML:
<div class="container"> <h2>Greetings</h2> <div class="inner">Hello</div> <div class="inner">Goodbye</div> </div>
We can create content and insert it before several elements at once:
$('<p>Test</p>').insertBefore('.inner');Each inner
<div>element gets this new content:<div class="container"> <h2>Greetings</h2> <p>Test</p> <div class="inner">Hello</div> <p>Test</p> <div class="inner">Goodbye</div> </div>
We can also select an element on the page and insert it before another:
$('h2').insertBefore($('.container'));If an element selected this way is inserted elsewhere, it will be moved before the target (not cloned):
<h2>Greetings</h2> <div class="container"> <div class="inner">Hello</div> <div class="inner">Goodbye</div> </div>
If there is more than one target element, however, cloned copies of the inserted element will be created for each target after the first, and that new set (the original element plus clones) is returned.
-
- before
-
Signatures
-
before(String, Element, jQuery, [ String, Element, Array, jQuery ]) returns jQuery
-
String, Element, jQuery content :
HTML string, DOM element, or jQuery object to insert before each element in the set of matched elements. -
String, Element, Array, jQuery content :
One or more additional DOM elements, arrays of elements, HTML strings, or jQuery objects to insert before each element in the set of matched elements.
-
String, Element, jQuery content :
-
before(Function) returns jQuery
-
Function function :
A function that returns an HTML string, DOM element(s), or jQuery object to insert before each element in the set of matched elements. Receives the index position of the element in the set as an argument. Within the function, thisrefers to the current element in the set.
-
Function function :
Description
Insert content, specified by the parameter, before each element in the set of matched elements. The
.before()and.insertBefore()methods perform the same task. The major difference is in the syntax-specifically, in the placement of the content and target. With.before(), the selector expression preceding the method is the container before which the content is inserted. With.insertBefore(), on the other hand, the content precedes the method, either as a selector expression or as markup created on the fly, and it is inserted before the target container.Consider the following HTML:
<div class="container"> <h2>Greetings</h2> <div class="inner">Hello</div> <div class="inner">Goodbye</div> </div>
You can create content and insert it before several elements at once:
$('.inner').before('<p>Test</p>');Each inner
<div>element gets this new content:<div class="container"> <h2>Greetings</h2> <p>Test</p> <div class="inner">Hello</div> <p>Test</p> <div class="inner">Goodbye</div> </div>
You can also select an element on the page and insert it before another:
$('.container').before($('h2'));If an element selected this way is inserted elsewhere, it will be moved before the target (not cloned):
<h2>Greetings</h2> <div class="container"> <div class="inner">Hello</div> <div class="inner">Goodbye</div> </div>
If there is more than one target element, however, cloned copies of the inserted element will be created for each target after the first.
In jQuery 1.4,
.before()and.after()will also work on disconnected DOM nodes:$("<div/>").before("<p></p>");The result is a jQuery set that contains a paragraph and a div (in that order).
Additional Arguments
Similar to other content-adding methods such as
.prepend()and.after(),.before()also supports passing in multiple arguments as input. Supported input includes DOM elements, jQuery objects, HTML strings, and arrays of DOM elements.For example, the following will insert two new
<div>s and an existing<div>before the first paragraph:var $newdiv1 = $('<div id="object1"/>'), newdiv2 = document.createElement('div'), existingdiv1 = document.getElementById('foo'); $('p').first().before($newdiv1, [newdiv2, existingdiv1]);Since
.before()can accept any number of additional arguments, the same result can be achieved by passing in the three<div>s as three separate arguments, like so:$('p').first().before($newdiv1, newdiv2, existingdiv1). The type and number of arguments will largely depend on how you collect the elements in your code. -
- insertAfter
-
Signature
-
insertAfter(Selector, Element, jQuery) returns jQuery
-
Selector, Element, jQuery target :
A selector, element, HTML string, or jQuery object; the matched set of elements will be inserted after the element(s) specified by this parameter.
-
Selector, Element, jQuery target :
Description
Insert every element in the set of matched elements after the target. The
.after()and.insertAfter()methods perform the same task. The major difference is in the syntax-specifically, in the placement of the content and target. With.after(), the selector expression preceding the method is the container after which the content is inserted. With.insertAfter(), on the other hand, the content precedes the method, either as a selector expression or as markup created on the fly, and it is inserted after the target container.Consider the following HTML:
<div class="container"> <h2>Greetings</h2> <div class="inner">Hello</div> <div class="inner">Goodbye</div> </div>
We can create content and insert it after several elements at once:
$('<p>Test</p>').insertAfter('.inner');Each inner
<div>element gets this new content:<div class="container"> <h2>Greetings</h2> <div class="inner">Hello</div> <p>Test</p> <div class="inner">Goodbye</div> <p>Test</p> </div>
We can also select an element on the page and insert it after another:
$('h2').insertAfter($('.container'));If an element selected this way is inserted elsewhere, it will be moved after the target (not cloned):
<div class="container"> <div class="inner">Hello</div> <div class="inner">Goodbye</div> </div> <h2>Greetings</h2>
If there is more than one target element, however, cloned copies of the inserted element will be created for each target after the first, and that new set (the original element plus clones) is returned.
-
- after
-
Signatures
-
after(String, Element, jQuery, [ String, Element, Array, jQuery ]) returns jQuery
-
String, Element, jQuery content :
HTML string, DOM element, or jQuery object to insert after each element in the set of matched elements. -
String, Element, Array, jQuery content :
One or more additional DOM elements, arrays of elements, HTML strings, or jQuery objects to insert after each element in the set of matched elements.
-
String, Element, jQuery content :
-
after(Function) returns jQuery
-
Function function(index) :
A function that returns an HTML string, DOM element(s), or jQuery object to insert after each element in the set of matched elements. Receives the index position of the element in the set as an argument. Within the function, thisrefers to the current element in the set.
-
Function function(index) :
Description
Insert content, specified by the parameter, after each element in the set of matched elements. The
.after()and.insertAfter()methods perform the same task. The major difference is in the syntax—specifically, in the placement of the content and target. With.after(), the selector expression preceding the method is the container after which the content is inserted. With.insertAfter(), on the other hand, the content precedes the method, either as a selector expression or as markup created on the fly, and it is inserted after the target container.Using the following HTML:
<div class="container"> <h2>Greetings</h2> <div class="inner">Hello</div> <div class="inner">Goodbye</div> </div>
Content can be created and then inserted after several elements at once:
$('.inner').after('<p>Test</p>');Each inner
<div>element gets this new content:<div class="container"> <h2>Greetings</h2> <div class="inner">Hello</div> <p>Test</p> <div class="inner">Goodbye</div> <p>Test</p> </div>
An element in the DOM can also be selected and inserted after another element:
$('.container').after($('h2'));If an element selected this way is inserted elsewhere, it will be moved rather than cloned:
<div class="container"> <div class="inner">Hello</div> <div class="inner">Goodbye</div> </div> <h2>Greetings</h2>
If there is more than one target element, however, cloned copies of the inserted element will be created for each target after the first.
Inserting Disconnected DOM nodes
As of jQuery 1.4,
.before()and.after()will also work on disconnected DOM nodes. For example, given the following code:$('<div/>').after('<p></p>');The result is a jQuery set containing a div and a paragraph, in that order. That set can be further manipulated, even before it is inserted in the document.
$('<div/>').after('<p></p>').addClass('foo') .filter('p').attr('id', 'bar').html('hello') .end() .appendTo('body');This results in the following elements inserted just before the closing
</body>tag:<div class="foo"></div> <p class="foo" id="bar">hello</p>
Passing a Function
As of jQuery 1.4,
.after()supports passing a function that returns the elements to insert.$('p').after(function() { return '<div>' + this.className + '</div>'; });This example inserts a
<div>after each paragraph, with each new<div>containing the class name(s) of its preceding paragraph.Additional Arguments
Similar to other content-adding methods such as
.prepend()and.before(),.after()also supports passing in multiple arguments as input. Supported input includes DOM elements, jQuery objects, HTML strings, and arrays of DOM elements.For example, the following will insert two new
<div>s and an existing<div>after the first paragraph:var $newdiv1 = $('<div id="object1"/>'), newdiv2 = document.createElement('div'), existingdiv1 = document.getElementById('foo'); $('p').first().after($newdiv1, [newdiv2, existingdiv1]);Since
.after()can accept any number of additional arguments, the same result can be achieved by passing in the three<div>s as three separate arguments, like so:$('p').first().after($newdiv1, newdiv2, existingdiv1). The type and number of arguments will largely depend on the elements are collected in the code. -
- prependTo
-
Signature
-
prependTo(Selector, Element, jQuery) returns jQuery
-
Selector, Element, jQuery target :
A selector, element, HTML string, or jQuery object; the matched set of elements will be inserted at the beginning of the element(s) specified by this parameter.
-
Selector, Element, jQuery target :
Description
Insert every element in the set of matched elements to the beginning of the target. The
.prepend()and.prependTo()methods perform the same task. The major difference is in the syntax-specifically, in the placement of the content and target. With.prepend(), the selector expression preceding the method is the container into which the content is inserted. With.prependTo(), on the other hand, the content precedes the method, either as a selector expression or as markup created on the fly, and it is inserted into the target container.Consider the following HTML:
<h2>Greetings</h2> <div class="container"> <div class="inner">Hello</div> <div class="inner">Goodbye</div> </div>
We can create content and insert it into several elements at once:
$('<p>Test</p>').prependTo('.inner');Each inner
<div>element gets this new content:<h2>Greetings</h2> <div class="container"> <div class="inner"> <p>Test</p> Hello </div> <div class="inner"> <p>Test</p> Goodbye </div> </div>We can also select an element on the page and insert it into another:
$('h2').prependTo($('.container'));If an element selected this way is inserted elsewhere, it will be moved into the target (not cloned):
<div class="container"> <h2>Greetings</h2> <div class="inner">Hello</div> <div class="inner">Goodbye</div> </div>
If there is more than one target element, however, cloned copies of the inserted element will be created for each target after the first.
-
- prepend
-
Signatures
-
prepend(String, Element, jQuery, [ String, Element, jQuery ]) returns jQuery
-
String, Element, jQuery content :
DOM element, array of elements, HTML string, or jQuery object to insert at the beginning of each element in the set of matched elements. -
String, Element, jQuery content :
One or more additional DOM elements, arrays of elements, HTML strings, or jQuery objects to insert at the beginning of each element in the set of matched elements.
-
String, Element, jQuery content :
-
prepend(Function) returns jQuery
-
Function function(index, html) :
A function that returns an HTML string, DOM element(s), or jQuery object to insert at the beginning of each element in the set of matched elements. Receives the index position of the element in the set and the old HTML value of the element as arguments. Within the function, thisrefers to the current element in the set.
-
Function function(index, html) :
Description
Insert content, specified by the parameter, to the beginning of each element in the set of matched elements. The
.prepend()method inserts the specified content as the first child of each element in the jQuery collection (To insert it as the last child, use.append()).The
.prepend()and.prependTo()methods perform the same task. The major difference is in the syntax—specifically, in the placement of the content and target. With.prepend(), the selector expression preceding the method is the container into which the content is inserted. With.prependTo(), on the other hand, the content precedes the method, either as a selector expression or as markup created on the fly, and it is inserted into the target container.Consider the following HTML:
<h2>Greetings</h2> <div class="container"> <div class="inner">Hello</div> <div class="inner">Goodbye</div> </div>
You can create content and insert it into several elements at once:
$('.inner').prepend('<p>Test</p>');Each
<div class="inner">element gets this new content:<h2>Greetings</h2> <div class="container"> <div class="inner"> <p>Test</p> Hello </div> <div class="inner"> <p>Test</p> Goodbye </div> </div>You can also select an element on the page and insert it into another:
$('.container').prepend($('h2'));If a single element selected this way is inserted elsewhere, it will be moved into the target (not cloned):
<div class="container"> <h2>Greetings</h2> <div class="inner">Hello</div> <div class="inner">Goodbye</div> </div>Important: If there is more than one target element, however, cloned copies of the inserted element will be created for each target after the first.
Additional Arguments
Similar to other content-adding methods such as
.append()and.before(),.prepend()also supports passing in multiple arguments as input. Supported input includes DOM elements, jQuery objects, HTML strings, and arrays of DOM elements.For example, the following will insert two new
<div>s and an existing<div>as the first three child nodes of the body:var $newdiv1 = $('<div id="object1"/>'), newdiv2 = document.createElement('div'), existingdiv1 = document.getElementById('foo'); $('body').prepend($newdiv1, [newdiv2, existingdiv1]);Since
.prepend()can accept any number of additional arguments, the same result can be achieved by passing in the three<div>s as three separate arguments, like so:$('body').prepend($newdiv1, newdiv2, existingdiv1). The type and number of arguments will largely depend on how you collect the elements in your code. -
- appendTo
-
Signature
-
appendTo(Selector, Element, jQuery) returns jQuery
-
Selector, Element, jQuery target :
A selector, element, HTML string, or jQuery object; the matched set of elements will be inserted at the end of the element(s) specified by this parameter.
-
Selector, Element, jQuery target :
Description
Insert every element in the set of matched elements to the end of the target. The
.append()and.appendTo()methods perform the same task. The major difference is in the syntax-specifically, in the placement of the content and target. With.append(), the selector expression preceding the method is the container into which the content is inserted. With.appendTo(), on the other hand, the content precedes the method, either as a selector expression or as markup created on the fly, and it is inserted into the target container.Consider the following HTML:
<h2>Greetings</h2> <div class="container"> <div class="inner">Hello</div> <div class="inner">Goodbye</div> </div>
We can create content and insert it into several elements at once:
$('<p>Test</p>').appendTo('.inner');Each inner
<div>element gets this new content:<h2>Greetings</h2> <div class="container"> <div class="inner"> Hello <p>Test</p> </div> <div class="inner"> Goodbye <p>Test</p> </div> </div>We can also select an element on the page and insert it into another:
$('h2').appendTo($('.container'));If an element selected this way is inserted elsewhere, it will be moved into the target (not cloned):
<div class="container"> <div class="inner">Hello</div> <div class="inner">Goodbye</div> <h2>Greetings</h2> </div>
If there is more than one target element, however, cloned copies of the inserted element will be created for each target after the first, and that new set (the original element plus clones) is returned.
-
- append
-
Signatures
-
append(String, Element, jQuery, [ String, Element, Array, jQuery ]) returns jQuery
-
String, Element, jQuery content :
DOM element, HTML string, or jQuery object to insert at the end of each element in the set of matched elements. -
String, Element, Array, jQuery content :
One or more additional DOM elements, arrays of elements, HTML strings, or jQuery objects to insert at the end of each element in the set of matched elements.
-
String, Element, jQuery content :
-
append(Function) returns jQuery
-
Function function(index, html) :
A function that returns an HTML string, DOM element(s), or jQuery object to insert at the end of each element in the set of matched elements. Receives the index position of the element in the set and the old HTML value of the element as arguments. Within the function, thisrefers to the current element in the set.
-
Function function(index, html) :
Description
Insert content, specified by the parameter, to the end of each element in the set of matched elements. The
.append()method inserts the specified content as the last child of each element in the jQuery collection (To insert it as the first child, use.prepend()).The
.append()and.appendTo()methods perform the same task. The major difference is in the syntax-specifically, in the placement of the content and target. With.append(), the selector expression preceding the method is the container into which the content is inserted. With.appendTo(), on the other hand, the content precedes the method, either as a selector expression or as markup created on the fly, and it is inserted into the target container.Consider the following HTML:
<h2>Greetings</h2> <div class="container"> <div class="inner">Hello</div> <div class="inner">Goodbye</div> </div>
You can create content and insert it into several elements at once:
$('.inner').append('<p>Test</p>');Each inner
<div>element gets this new content:<h2>Greetings</h2> <div class="container"> <div class="inner"> Hello <p>Test</p> </div> <div class="inner"> Goodbye <p>Test</p> </div> </div>You can also select an element on the page and insert it into another:
$('.container').append($('h2'));If an element selected this way is inserted elsewhere, it will be moved into the target (not cloned):
<div class="container"> <div class="inner">Hello</div> <div class="inner">Goodbye</div> <h2>Greetings</h2> </div>
If there is more than one target element, however, cloned copies of the inserted element will be created for each target after the first.
Additional Arguments
Similar to other content-adding methods such as
.prepend()and.before(),.append()also supports passing in multiple arguments as input. Supported input includes DOM elements, jQuery objects, HTML strings, and arrays of DOM elements.For example, the following will insert two new
<div>s and an existing<div>as the last three child nodes of the body:var $newdiv1 = $('<div id="object1"/>'), newdiv2 = document.createElement('div'), existingdiv1 = document.getElementById('foo'); $('body').append($newdiv1, [newdiv2, existingdiv1]);Since
.append()can accept any number of additional arguments, the same result can be achieved by passing in the three<div>s as three separate arguments, like so:$('body').append($newdiv1, newdiv2, existingdiv1). The type and number of arguments will largely depend on how you collect the elements in your code. -
- val
-
Signature
-
val() returns String, Number, Array
Description
Get the current value of the first element in the set of matched elements. The
.val()method is primarily used to get the values of form elements such asinput,selectandtextarea. In the case of<select multiple="multiple">elements, the.val()method returns an array containing each selected option.For selects and checkboxes, you can also use the :selected and :checked selectors to get at values, for example:
$('select.foo option:selected').val(); // get the value from a dropdown select $('select.foo').val(); // get the value from a dropdown select even easier $('input:checkbox:checked').val(); // get the value from a checked checkbox $('input:radio[name=bar]:checked').val(); // get the value from a set of radio buttonsNote: At present, using
.val()on textarea elements strips carriage return characters from the browser-reported value. When this value is sent to the server via XHR however, carriage returns are preserved (or added by browsers which do not include them in the raw value). A workaround for this issue can be achieved using a valHook as follows:$.valHooks.textarea = { get: function( elem ) { return elem.value.replace( /\r?\n/g, "\r\n" ); } }; -
- val
-
Signatures
-
val(String) returns jQuery
-
String value :
A string of text or an array of strings corresponding to the value of each matched element to set as selected/checked.
-
String value :
-
val(Function) returns jQuery
-
Function function(index, value) :
A function returning the value to set. thisis the current element. Receives the index position of the element in the set and the old value as arguments.
-
Function function(index, value) :
Description
Set the value of each element in the set of matched elements. This method is typically used to set the values of form fields.
Passing an array of element values allows matching
<input type="checkbox">,<input type="radio">and<option>s inside of n<select multiple="multiple">to be selected. In the case of<input type="radio">s that are part of a radio group and<select multiple="multiple">the other elements will be deselected.The
.val()method allows us to set the value by passing in a function. As of jQuery 1.4, the function is passed two arguments, the current element's index and its current value:$('input:text.items').val(function( index, value ) { return value + ' ' + this.className; });This example appends the string " items" to the text inputs' values.
-
- text
-
Signature
-
text() returns String
Description
Get the combined text contents of each element in the set of matched elements, including their descendants. Unlike the
.html()method,.text()can be used in both XML and HTML documents. The result of the.text()method is a string containing the combined text of all matched elements. (Due to variations in the HTML parsers in different browsers, the text returned may vary in newlines and other white space.) Consider the following HTML:<div class="demo-container"> <div class="demo-box">Demonstration Box</div> <ul> <li>list item 1</li> <li>list <strong>item</strong> 2</li> </ul> </div>
The code
$('div.demo-container').text()would produce the following result:Demonstration Box list item 1 list item 2The
.text()method cannot be used on form inputs or scripts. To set or get the text value ofinputortextareaelements, use the.val()method. To get the value of a script element, use the.html()method.As of jQuery 1.4, the
.text()method returns the value of text and CDATA nodes as well as element nodes. -
- text
-
Signatures
-
text(String) returns jQuery
-
String textString :
A string of text to set as the content of each matched element.
-
String textString :
-
text(Function) returns jQuery
-
Function function(index, text) :
A function returning the text content to set. Receives the index position of the element in the set and the old text value as arguments.
-
Function function(index, text) :
Description
Set the content of each element in the set of matched elements to the specified text. Unlike the
.html()method,.text()can be used in both XML and HTML documents.We need to be aware that this method escapes the string provided as necessary so that it will render correctly in HTML. To do so, it calls the DOM method
.createTextNode(), which replaces special characters with their HTML entity equivalents (such as<for<). Consider the following HTML:<div class="demo-container"> <div class="demo-box">Demonstration Box</div> <ul> <li>list item 1</li> <li>list <strong>item</strong> 2</li> </ul> </div>The code
$('div.demo-container').text('<p>This is a test.</p>');will produce the following DOM output:<div class="demo-container"> <p>This is a test.</p> </div>
It will appear on a rendered page as though the tags were exposed, like this:
<p>This is a test</p>
The
.text()method cannot be used on input elements. For input field text, use the .val() method.As of jQuery 1.4, the
.text()method allows us to set the text content by passing in a function.$('ul li').text(function(index) { return 'item number ' + (index + 1); });Given an unordered list with three
<li>elements, this example will produce the following DOM output:<ul> <li>item number 1</li> <li>item number 2</li> <li>item number 3</li> </ul>
-
- html
-
Signature
-
html() returns String
Description
Get the HTML contents of the first element in the set of matched elements. This method is not available on XML documents.
In an HTML document,
.html()can be used to get the contents of any element. If the selector expression matches more than one element, only the first match will have its HTML content returned. Consider this code:$('div.demo-container').html();In order for the following
<div>'s content to be retrieved, it would have to be the first one withclass="demo-container"in the document:<div class="demo-container"> <div class="demo-box">Demonstration Box</div> </div>
The result would look like this:
<div class="demo-box">Demonstration Box</div>
This method uses the browser's
innerHTMLproperty. Some browsers may not return HTML that exactly replicates the HTML source in an original document. For example, Internet Explorer sometimes leaves off the quotes around attribute values if they contain only alphanumeric characters. -
- html
-
Signatures
-
html(String) returns jQuery
-
String htmlString :
A string of HTML to set as the content of each matched element.
-
String htmlString :
-
html(Function) returns jQuery
-
Function function(index, oldhtml) :
A function returning the HTML content to set. Receives the index position of the element in the set and the old HTML value as arguments. jQuery empties the element before calling the function; use the oldhtml argument to reference the previous content. Within the function, thisrefers to the current element in the set.
-
Function function(index, oldhtml) :
Description
Set the HTML contents of each element in the set of matched elements. The
.html()method is not available in XML documents.When
.html()is used to set an element's content, any content that was in that element is completely replaced by the new content. Consider the following HTML:<div class="demo-container"> <div class="demo-box">Demonstration Box</div> </div>
The content of
<div class="demo-container">can be set like this:$('div.demo-container') .html('<p>All new content. <em>You bet!</em></p>');That line of code will replace everything inside
<div class="demo-container">:<div class="demo-container"> <p>All new content. <em>You bet!</em></p> </div>
As of jQuery 1.4, the
.html()method allows the HTML content to be set by passing in a function.$('div.demo-container').html(function() { var emph = '<em>' + $('p').length + ' paragraphs!</em>'; return '<p>All new content for ' + emph + '</p>'; });Given a document with six paragraphs, this example will set the HTML of
<div class="demo-container">to<p>All new content for <em>6 paragraphs!</em></p>.This method uses the browser's
innerHTMLproperty. Some browsers may not generate a DOM that exactly replicates the HTML source provided. For example, Internet Explorer prior to version 8 will convert allhrefproperties on links to absolute URLs, and Internet Explorer prior to version 9 will not correctly handle HTML5 elements without the addition of a separate compatibility layer. -
- map
-
Signature
-
map(Function) returns jQuery
-
Function callback(index, domElement) :
A function object that will be invoked for each element in the current set.
-
Function callback(index, domElement) :
Description
Pass each element in the current matched set through a function, producing a new jQuery object containing the return values. As the return value is a jQuery-wrapped array, it's very common to
get()the returned object to work with a basic array.The
.map()method is particularly useful for getting or setting the value of a collection of elements. Consider a form with a set of checkboxes in it:<form method="post" action=""> <fieldset> <div> <label for="two">2</label> <input type="checkbox" value="2" id="two" name="number[]"> </div> <div> <label for="four">4</label> <input type="checkbox" value="4" id="four" name="number[]"> </div> <div> <label for="six">6</label> <input type="checkbox" value="6" id="six" name="number[]"> </div> <div> <label for="eight">8</label> <input type="checkbox" value="8" id="eight" name="number[]"> </div> </fieldset> </form>We can get a comma-separated list of checkbox
IDs:$(':checkbox').map(function() { return this.id; }).get().join(',');The result of this call is the string,
"two,four,six,eight".Within the callback function,
thisrefers to the current DOM element for each iteration. The function can return an individual data item or an array of data items to be inserted into the resulting set. If an array is returned, the elements inside the array are inserted into the set. If the function returnsnullorundefined, no element will be inserted. -
- is
-
Signatures
-
is(Selector) returns Boolean
-
Selector selector :
A string containing a selector expression to match elements against.
-
Selector selector :
-
is(Function) returns Boolean
-
Function function(index) :
A function used as a test for the set of elements. It accepts one argument, index, which is the element's index in the jQuery collection.Within the function,thisrefers to the current DOM element.
-
Function function(index) :
-
is(Object) returns Boolean
-
Object jQuery object :
An existing jQuery object to match the current set of elements against.
-
Object jQuery object :
-
is(Element) returns Boolean
-
Element element :
An element to match the current set of elements against.
-
Element element :
Description
Check the current matched set of elements against a selector, element, or jQuery object and return trueif at least one of these elements matches the given arguments.Unlike other filtering methods,
.is()does not create a new jQuery object. Instead, it allows you to test the contents of a jQuery object without modification. This is often useful inside callbacks, such as event handlers.Suppose you have a list, with two of its items containing a child element:
<ul> <li>list <strong>item 1</strong></li> <li><span>list item 2</span></li> <li>list item 3</li> </ul>
You can attach a click handler to the <ul> element, and then limit the code to be triggered only when a list item itself, not one of its children, is clicked:
$("ul").click(function(event) { var $target = $(event.target); if ( $target.is("li") ) { $target.css("background-color", "red"); } });Now, when the user clicks on the word "list" in the first item or anywhere in the third item, the clicked list item will be given a red background. However, when the user clicks on item 1 in the first item or anywhere in the second item, nothing will occur, because in those cases the target of the event would be
<strong>or<span>, respectively.Prior to jQuery 1.7, in selector strings with positional selectors such as
:first,:gt(), or:even, the positional filtering is done against the jQuery object passed to.is(), not against the containing document. So for the HTML shown above, an expression such as$("li:first").is("li:last")returnstrue, but$("li:first-child").is("li:last-child")returnsfalse. In addition, a bug in Sizzle prevented many positional selectors from working properly. These two factors made positional selectors almost unusable in filters.Starting with jQuery 1.7, selector strings with positional selectors apply the selector against the document, and then determine whether the first element of the current jQuery set matches any of the resulting elements. So for the HTML shown above, an expression such as
$("li:first").is("li:last")returnsfalse. Note that since positional selectors are jQuery additions and not W3C standard, we recommend using the W3C selectors whenever feasible.Using a Function
The second form of this method evaluates expressions related to elements based on a function rather than a selector. For each element, if the function returns
true,.is()returnstrueas well. For example, given a somewhat more involved HTML snippet:<ul> <li><strong>list</strong> item 1 - one strong tag</li> <li><strong>list</strong> item <strong>2</strong> - two <span>strong tags</span></li> <li>list item 3</li> <li>list item 4</li> <li>list item 5</li> </ul>You can attach a click handler to every
<li>that evaluates the number of<strong>elements within the clicked<li>at that time like so:$("li").click(function() { var $li = $(this), isWithTwo = $li.is(function() { return $('strong', this).length === 2; }); if ( isWithTwo ) { $li.css("background-color", "green"); } else { $li.css("background-color", "red"); } }); -
- eq
-
Signatures
-
eq(Integer) returns jQuery
-
Integer index :
An integer indicating the 0-based position of the element.
-
Integer index :
-
eq(Integer) returns jQuery
-
Integer -index :
An integer indicating the position of the element, counting backwards from the last element in the set.
-
Integer -index :
Description
Reduce the set of matched elements to the one at the specified index. Given a jQuery object that represents a set of DOM elements, the
.eq()method constructs a new jQuery object from one element within that set. The supplied index identifies the position of this element in the set.Consider a page with a simple list on it:
<ul> <li>list item 1</li> <li>list item 2</li> <li>list item 3</li> <li>list item 4</li> <li>list item 5</li> </ul>We can apply this method to the set of list items:
$('li').eq(2).css('background-color', 'red');The result of this call is a red background for item 3. Note that the supplied index is zero-based, and refers to the position of the element within the jQuery object, not within the DOM tree.
Providing a negative number indicates a position starting from the end of the set, rather than the beginning. For example:
$('li').eq(-2).css('background-color', 'red');This time list item 4 is turned red, since it is two from the end of the set.
If an element cannot be found at the specified zero-based index, the method constructs a new jQuery object with an empty set and a
lengthproperty of 0.$('li').eq(5).css('background-color', 'red');Here, none of the list items is turned red, since
.eq(5)indicates the sixth of five list items. -
- filter
-
Signatures
-
filter(Selector) returns jQuery
-
Selector selector :
A string containing a selector expression to match the current set of elements against.
-
Selector selector :
-
filter(Function) returns jQuery
-
Function function(index) :
A function used as a test for each element in the set. thisis the current DOM element.
-
Function function(index) :
-
filter(Element) returns jQuery
-
Element element :
An element to match the current set of elements against.
-
Element element :
-
filter(Object) returns jQuery
-
Object jQuery object :
An existing jQuery object to match the current set of elements against.
-
Object jQuery object :
Description
Reduce the set of matched elements to those that match the selector or pass the function's test. Given a jQuery object that represents a set of DOM elements, the
.filter()method constructs a new jQuery object from a subset of the matching elements. The supplied selector is tested against each element; all elements matching the selector will be included in the result.Consider a page with a simple list on it:
<ul> <li>list item 1</li> <li>list item 2</li> <li>list item 3</li> <li>list item 4</li> <li>list item 5</li> <li>list item 6</li> </ul>We can apply this method to the set of list items:
$('li').filter(':even').css('background-color', 'red');The result of this call is a red background for items 1, 3, and 5, as they match the selector (recall that
:evenand:odduse 0-based indexing).Using a Filter Function
The second form of this method allows us to filter elements against a function rather than a selector. For each element, if the function returns
true(or a "truthy" value), the element will be included in the filtered set; otherwise, it will be excluded. Suppose we have a somewhat more involved HTML snippet:<ul> <li><strong>list</strong> item 1 - one strong tag</li> <li><strong>list</strong> item <strong>2</strong> - two <span>strong tags</span></li> <li>list item 3</li> <li>list item 4</li> <li>list item 5</li> <li>list item 6</li> </ul>We can select the list items, then filter them based on their contents:
$('li').filter(function(index) { return $('strong', this).length == 1; }).css('background-color', 'red');This code will alter the first list item only, as it contains exactly one
<strong>tag. Within the filter function,thisrefers to each DOM element in turn. The parameter passed to the function tells us the index of that DOM element within the set matched by the jQuery object.We can also take advantage of the
indexpassed through the function, which indicates the 0-based position of the element within the unfiltered set of matched elements:$('li').filter(function(index) { return index % 3 == 2; }).css('background-color', 'red');This alteration to the code will cause the third and sixth list items to be highlighted, as it uses the modulus operator (
%) to select every item with anindexvalue that, when divided by 3, has a remainder of2. -
- toggleClass
-
Signatures
-
toggleClass(String) returns jQuery
-
String className :
One or more class names (separated by spaces) to be toggled for each element in the matched set.
-
String className :
-
toggleClass(String, Boolean) returns jQuery
-
String className :
One or more class names (separated by spaces) to be toggled for each element in the matched set. -
Boolean switch :
A Boolean (not just truthy/falsy) value to determine whether the class should be added or removed.
-
String className :
-
toggleClass([ Boolean ]) returns jQuery
-
Boolean switch :
A boolean value to determine whether the class should be added or removed.
-
Boolean switch :
-
toggleClass(Function, [ Boolean ]) returns jQuery
-
Function function(index, class, switch) :
A function that returns class names to be toggled in the class attribute of each element in the matched set. Receives the index position of the element in the set, the old class value, and the switch as arguments. -
Boolean switch :
A boolean value to determine whether the class should be added or removed.
-
Function function(index, class, switch) :
Description
Add or remove one or more classes from each element in the set of matched elements, depending on either the class's presence or the value of the switch argument. This method takes one or more class names as its parameter. In the first version, if an element in the matched set of elements already has the class, then it is removed; if an element does not have the class, then it is added. For example, we can apply
.toggleClass()to a simple<div>:<div class="tumble">Some text.</div>The first time we apply
$('div.tumble').toggleClass('bounce'), we get the following:<div class="tumble bounce">Some text.</div>The second time we apply
$('div.tumble').toggleClass('bounce'), the<div>class is returned to the singletumblevalue:<div class="tumble">Some text.</div>
Applying
.toggleClass('bounce spin')to the same<div>alternates between<div class="tumble bounce spin">and<div class="tumble">.The second version of
.toggleClass()uses the second parameter for determining whether the class should be added or removed. If this parameter's value istrue, then the class is added; iffalse, the class is removed. In essence, the statement:$('#foo').toggleClass(className, addOrRemove);is equivalent to:
if (addOrRemove) { $('#foo').addClass(className); } else { $('#foo').removeClass(className); }As of jQuery 1.4, if no arguments are passed to
.toggleClass(), all class names on the element the first time.toggleClass()is called will be toggled. Also as of jQuery 1.4, the class name to be toggled can be determined by passing in a function.$('div.foo').toggleClass(function() { if ($(this).parent().is('.bar')) { return 'happy'; } else { return 'sad'; } });This example will toggle the
happyclass for<div class="foo">elements if their parent element has a class ofbar; otherwise, it will toggle thesadclass. -
- removeClass
-
Signatures
-
removeClass([ String ]) returns jQuery
-
String className :
One or more space-separated classes to be removed from the class attribute of each matched element.
-
String className :
-
removeClass(Function) returns jQuery
-
Function function(index, class) :
A function returning one or more space-separated class names to be removed. Receives the index position of the element in the set and the old class value as arguments.
-
Function function(index, class) :
Description
Remove a single class, multiple classes, or all classes from each element in the set of matched elements. If a class name is included as a parameter, then only that class will be removed from the set of matched elements. If no class names are specified in the parameter, all classes will be removed.
More than one class may be removed at a time, separated by a space, from the set of matched elements, like so:
$('p').removeClass('myClass yourClass')This method is often used with
.addClass()to switch elements' classes from one to another, like so:$('p').removeClass('myClass noClass').addClass('yourClass');Here, the
myClassandnoClassclasses are removed from all paragraphs, whileyourClassis added.To replace all existing classes with another class, we can use
.attr('class', 'newClass')instead.As of jQuery 1.4, the
.removeClass()method allows us to indicate the class to be removed by passing in a function.$('li:last').removeClass(function() { return $(this).prev().attr('class'); });This example removes the class name of the penultimate
<li>from the last<li>. -
- hasClass
-
Signature
-
hasClass(String) returns Boolean
-
String className :
The class name to search for.
-
String className :
Description
Determine whether any of the matched elements are assigned the given class. Elements may have more than one class assigned to them. In HTML, this is represented by separating the class names with a space:
<div id="mydiv" class="foo bar"></div>
The
.hasClass()method will returntrueif the class is assigned to an element, even if other classes also are. For example, given the HTML above, the following will returntrue:$('#mydiv').hasClass('foo')As would:
$('#mydiv').hasClass('bar')While this would return
false:$('#mydiv').hasClass('quux') -
- removeAttr
-
Signature
-
removeAttr(String) returns jQuery
-
String attributeName :
An attribute to remove.
-
String attributeName :
Description
Remove an attribute from each element in the set of matched elements. The
.removeAttr()method uses the JavaScriptremoveAttribute()function, but it has the advantage of being able to be called directly on a jQuery object and it accounts for different attribute naming across browsers.Note: Removing an inline
onclickevent handler using.removeAttr()doesn't achieve the desired effect in Internet Explorer 6, 7, or 8. To avoid potential problems, use.prop()instead:$element.prop("onclick", null); console.log("onclick property: ", $element[0].onclick);The behavior of
.removeAttr()may be updated to better handle this in the future. For the time being, however, setting.prop("onclick", null)should be considered the standard cross-browser solution. -
- attr
-
Signature
-
attr(String) returns String
-
String attributeName :
The name of the attribute to get.
-
String attributeName :
Description
Get the value of an attribute for the first element in the set of matched elements. The
.attr()method gets the attribute value for only the first element in the matched set. To get the value for each element individually, use a looping construct such as jQuery's.each()or.map()method.As of jQuery 1.6, the
.attr()method returnsundefinedfor attributes that have not been set. In addition,.attr()should not be used on plain objects, arrays, the window, or the document. To retrieve and change DOM properties, use the .prop() method.Using jQuery's
.attr()method to get the value of an element's attribute has two main benefits:- Convenience: It can be called directly on a jQuery object and chained to other jQuery methods.
-
Cross-browser consistency: The values of some attributes are reported inconsistently across browsers, and even across versions of a single browser. The
.attr()method reduces such inconsistencies.
Note: Attribute values are strings with the exception of a few attributes such as value and tabindex.
-
- attr
-
Signatures
-
attr(String, String,Number) returns jQuery
-
String attributeName :
The name of the attribute to set. -
String,Number value :
A value to set for the attribute.
-
String attributeName :
-
attr(Map) returns jQuery
-
Map map :
A map of attribute-value pairs to set.
-
Map map :
-
attr(String, Function) returns jQuery
-
String attributeName :
The name of the attribute to set. -
Function function(index, attr) :
A function returning the value to set. thisis the current element. Receives the index position of the element in the set and the old attribute value as arguments.
-
String attributeName :
Description
Set one or more attributes for the set of matched elements. The
.attr()method is a convenient way to set the value of attributes—especially when setting multiple attributes or using values returned by a function. Consider the following image:<img id="greatphoto" src="brush-seller.jpg" alt="brush seller" />
Setting a simple attribute
To change the
altattribute, simply pass the name of the attribute and its new value to the.attr()method:$('#greatphoto').attr('alt', 'Beijing Brush Seller');Add an attribute the same way:
$('#greatphoto') .attr('title', 'Photo by Kelly Clark');Setting several attributes at once
To change the
altattribute and add thetitleattribute at the same time, pass both sets of names and values into the method at once using a map (JavaScript object literal). Each key-value pair in the map adds or modifies an attribute:$('#greatphoto').attr({ alt: 'Beijing Brush Seller', title: 'photo by Kelly Clark' });When setting multiple attributes, the quotes around attribute names are optional.
WARNING: When setting the 'class' attribute, you must always use quotes!
Note: jQuery prohibits changing the
typeattribute on an<input>or<button>element and will throw an error in all browsers. This is because thetypeattribute cannot be changed in Internet Explorer.Computed attribute values
By using a function to set attributes, you can compute the value based on other properties of the element. For example, to concatenate a new value with an existing value:
$('#greatphoto').attr('title', function(i, val) { return val + ' - photo by Kelly Clark' });This use of a function to compute attribute values can be particularly useful when modifying the attributes of multiple elements at once.
Note: If nothing is returned in the setter function (ie.
function(index, attr){}), or ifundefinedis returned, the current value is not changed. This is useful for selectively setting values only when certain criteria are met. -
- addClass
-
Signatures
-
addClass(String) returns jQuery
-
String className :
One or more class names to be added to the class attribute of each matched element.
-
String className :
-
addClass(Function) returns jQuery
-
Function function(index, currentClass) :
A function returning one or more space-separated class names to be added to the existing class name(s). Receives the index position of the element in the set and the existing class name(s) as arguments. Within the function, thisrefers to the current element in the set.
-
Function function(index, currentClass) :
Description
Adds the specified class(es) to each of the set of matched elements. It's important to note that this method does not replace a class. It simply adds the class, appending it to any which may already be assigned to the elements.
More than one class may be added at a time, separated by a space, to the set of matched elements, like so:
$("p").addClass("myClass yourClass");This method is often used with
.removeClass()to switch elements' classes from one to another, like so:$("p").removeClass("myClass noClass").addClass("yourClass");Here, the
myClassandnoClassclasses are removed from all paragraphs, whileyourClassis added.As of jQuery 1.4, the
.addClass()method's argument can receive a function.$("ul li:last").addClass(function() { return "item-" + $(this).index(); });Given an unordered list with five
<li>elements, this example adds the class "item-4" to the last<li>. -