X-Git-Url: http://git.asbjorn.it/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjquery%2Fjquery.js;h=cc89fff70c36a93434abc646213203bbf3103e7b;hb=297a450e05e80e930d53631bb9ae2c3fe09378b7;hp=1eb211a7686a67d43629ea0db89b3accefb5285a;hpb=ecaa4d4570b05610d542b971fc4278de3c251e79;p=jquery.git diff --git a/src/jquery/jquery.js b/src/jquery/jquery.js index 1eb211a..cc89fff 100644 --- a/src/jquery/jquery.js +++ b/src/jquery/jquery.js @@ -76,8 +76,12 @@ var $ = jQuery; * (usually consisting of CSS or XPath), which then finds all matching * elements. * - * By default, $() looks for DOM elements within the context of the - * current HTML document. + * By default, if no context is specified, $() looks for DOM elements within the context of the + * current HTML document. If you do specify a context, such as a DOM + * element or jQuery object, the expression will be matched against + * the contents of that context. + * + * See [[DOM/Traversing/Selectors]] for the allowed CSS/XPath syntax for expressions. * * @example $("div > p") * @desc Finds all p elements that are children of a div element. @@ -102,10 +106,10 @@ var $ = jQuery; /** * Create DOM elements on-the-fly from the provided String of raw HTML. * - * @example $("
Hello
Hello
add
,
+ * children
, clone
, filter
,
+ * find
, not
, next
,
+ * parent
, parents
, prev
and siblings
.
+ *
* @example $("p").find("span").end();
* @before Hello, how are you?
* @result [...
] @@ -824,7 +837,9 @@ jQuery.fn = jQuery.prototype = { */ clone: function(deep) { return this.pushStack( jQuery.map( this, function(a){ - return a.cloneNode( deep != undefined ? deep : true ); + var a = a.cloneNode( deep != undefined ? deep : true ); + a.$events = null; // drop $events expando to avoid firing incorrect events + return a; }) ); }, @@ -914,6 +929,9 @@ jQuery.fn = jQuery.prototype = { * of matched elements. This method is used to remove one or more * elements from a jQuery object. * + * Please note: the expression cannot use a reference to the + * element name. See the two examples below. + * * @example $("p").not( $("div p.selected") ) * @beforeHello
Hello Again
Hello
] @@ -942,8 +960,12 @@ jQuery.fn = jQuery.prototype = { * to the set of matched elements. * * @example $("p").add("span") - * @beforeHello
Hello Again - * @result [Hello
, Hello Again ] + * @before (HTML)Hello
Hello Again + * @result (jQuery object matching 2 elements) [Hello
, Hello Again ] + * @desc Compare the above result to the result of$('p')
,
+ * which would just result in [ Hello
]
.
+ * Using add(), matched elements of $('span')
are simply
+ * added to the returned jQuery-object.
*
* @name add
* @type jQuery
@@ -1020,7 +1042,14 @@ jQuery.fn = jQuery.prototype = {
},
/**
- * Get the current value of the first matched element.
+ * Get the content of the value attribute of the first matched element.
+ *
+ * Use caution when relying on this function to check the value of
+ * multiple-select elements and checkboxes in a form. While it will
+ * still work as intended, it may not accurately represent the value
+ * the server will receive because these elements may send an array
+ * of values. For more robust handling of field values, see the
+ * [http://www.malsup.com/jquery/form/#fields fieldValue function of the Form Plugin].
*
* @example $("input").val();
* @before
@@ -1032,7 +1061,7 @@ jQuery.fn = jQuery.prototype = {
*/
/**
- * Set the value of every matched element.
+ * Set the value attribute of every matched element.
*
* @example $("input").val("test");
* @before
@@ -1113,7 +1142,7 @@ jQuery.fn = jQuery.prototype = {
/**
* Extends the jQuery object itself. Can be used to add functions into
- * the jQuery namespace and to add plugin methods (plugins).
+ * the jQuery namespace and to [[Plugins/Authoring|add plugin methods]] (plugins).
*
* @example jQuery.fn.extend({
* check: function() {
@@ -1225,7 +1254,7 @@ jQuery.extend({
// This may seem like some crazy code, but trust me when I say that this
// is the only cross-browser way to do this. --John
isFunction: function( fn ) {
- return !!fn && typeof fn != "string" &&
+ return !!fn && typeof fn != "string" && !fn.nodeName &&
typeof fn[0] == "undefined" && /function/i.test( fn + "" );
},
@@ -1239,7 +1268,7 @@ jQuery.extend({
},
/**
- * A generic iterator function, which can be used to seemlessly
+ * A generic iterator function, which can be used to seamlessly
* iterate over both objects and arrays. This function is not the same
* as $().each() - which is used to iterate, exclusively, over a jQuery
* object. This function can be used to iterate over anything.
@@ -1280,7 +1309,7 @@ jQuery.extend({
prop: function(elem, value, type, index, prop){
// Handle executable functions
if ( jQuery.isFunction( value ) )
- return value.call( elem, [index] );
+ value = value.call( elem, [index] );
// exclude the following css properties to add px
var exclude = /z-?index|font-?weight|opacity|zoom|line-?height/i;
@@ -1311,6 +1340,8 @@ jQuery.extend({
// internal only, use is(".class")
has: function( t, c ) {
t = t.className || t;
+ // escape regex characters
+ c = c.replace(/([\.\\\+\*\?\[\^\]\$\(\)\{\}\=\!\<\>\|\:])/g, "\\$1");
return t && new RegExp("(^|\\s)" + c + "(\\s|$)").test( t );
}
},
@@ -1441,7 +1472,7 @@ jQuery.extend({
[0,"",""];
// Go to html and back, then peel off extra wrappers
- div.innerHTML = wrap[1] + s + wrap[2];
+ div.innerHTML = wrap[1] + arg + wrap[2];
// Move to the right depth
while ( wrap[0]-- )
@@ -1464,13 +1495,13 @@ jQuery.extend({
}
- arg = div.childNodes;
+ arg = jQuery.makeArray( div.childNodes );
}
- if ( arg.length === 0 )
+ if ( arg.length === 0 && !jQuery.nodeName(arg, "form") )
return;
- if ( arg[0] == undefined || jQuery.nodeName(arg,"form") )
+ if ( arg[0] == undefined || jQuery.nodeName(arg, "form") )
r.push( arg );
else
r = jQuery.merge( r, arg );
@@ -1525,7 +1556,8 @@ jQuery.extend({
// IE elem.getAttribute passes even for style
else if ( elem.tagName ) {
if ( value != undefined ) elem.setAttribute( name, value );
- if ( name == "href" && jQuery.browser.msie && !jQuery.isXMLDoc(elem) ) return elem.getAttribute( name, 2 );
+ if ( jQuery.browser.msie && /href|src/.test(name) && !jQuery.isXMLDoc(elem) )
+ return elem.getAttribute( name, 2 );
return elem.getAttribute( name );
// elem is actually elem.style ... set the style
@@ -1763,7 +1795,7 @@ new function() {
* Get a set of elements containing the unique parents of the matched
* set of elements.
*
- * Can be filtered with an optional expressions.
+ * You may use an optional expression to filter the set of parent elements that will match.
*
* @example $("p").parent()
* @before Hello
Hello
Hello
Hello AgainHello
Hello Again
Hello
And Again
@@ -1877,7 +1910,8 @@ new function() { * Get a set of elements containing all of the unique children of each of the * matched set of elements. * - * Can be filtered with an optional expressions. + * This set can be filtered with an optional expression that will cause + * only elements matching the selector to be collected. * * @example $("div").children() * @beforeHello
And Again
@@ -2230,7 +2264,7 @@ jQuery.each( [ "eq", "lt", "gt", "contains" ], function(i,n){ */ /** - * Set the CSS width of every matched element. If no explicit unit + * Set the CSS height of every matched element. If no explicit unit * was specified (like 'em' or '%') then "px" is added to the width. * * @example $("p").height(20);