X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=src%2Fjquery%2Fjquery.js;h=061d86c89e001b2ba434fa3ed28d22bae74470e2;hb=ab2d10c6d62c4d2b834337e238cf2a618eec4412;hp=c309428ead7d15539bad9dcd9f2c9d712edf2473;hpb=7820594c6630c0018a60e1c9c7bcacf78de06fb4;p=jquery.git diff --git a/src/jquery/jquery.js b/src/jquery/jquery.js index c309428..061d86c 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 [...
] @@ -916,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
] @@ -944,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
@@ -1022,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
@@ -1034,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
@@ -1115,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() {
@@ -1227,8 +1254,8 @@ 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" &&
- typeof fn[0] == "undefined" && /function/i.test( fn + "" );
+ return !!fn && typeof fn != "string" && !fn.nodeName &&
+ fn.constructor != Array && /function/i.test( fn + "" );
},
// check if an element is in a XML document
@@ -1241,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.
@@ -1313,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 );
}
},
@@ -1443,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]-- )
@@ -1466,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 )
+ if ( arg[0] == undefined || jQuery.nodeName(arg, "form") )
r.push( arg );
else
r = jQuery.merge( r, arg );
@@ -1511,11 +1540,6 @@ jQuery.extend({
return elem.filter ?
parseFloat( elem.filter.match(/alpha\(opacity=(.*)\)/)[1] ) / 100 : 1;
- // Mozilla doesn't play well with opacity 1
- if ( name == "opacity" && jQuery.browser.mozilla && value == 1 )
- value = 0.9999;
-
-
// Certain attributes only work when accessed via the old DOM 0 way
if ( fix[name] ) {
if ( value != undefined ) elem[fix[name]] = value;
@@ -1557,7 +1581,8 @@ jQuery.extend({
makeArray: function( a ) {
var r = [];
- if ( a.constructor != Array )
+ // Need to use typeof to fight Safari childNodes crashes
+ if ( typeof a != "array" )
for ( var i = 0, al = a.length; i < al; i++ )
r.push( a[i] );
else
@@ -1766,7 +1791,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
@@ -1880,7 +1906,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
@@ -2233,7 +2260,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);