Resolved bug #191 as won't fix, removed the failing test and changed docs accordingly.
[jquery.git] / src / jquery / jquery.js
index 11cd56e..c3185bb 100644 (file)
@@ -587,19 +587,17 @@ jQuery.fn = jQuery.prototype = {
         * and finds the deepest ancestor element within its
         * structure - it is that element that will en-wrap everything else.
         *
+        * This does not work with elements that contain text. Any necessary text
+        * must be added after the wrapping is done.
+        *
         * @example $("p").wrap("<div class='wrap'></div>");
         * @before <p>Test Paragraph.</p>
         * @result <div class='wrap'><p>Test Paragraph.</p></div>
         * 
         * @test var defaultText = 'Try them out:'
         * var result = $('#first').wrap('<div class="red"><span></span></div>').text();
-        * ok( defaultText == result, 'Check for simple wrapping' );
-        * ok( $('#first').parent().parent().is('.red'), 'Check if wrapper div has class "red"' );
-        *
-        * @test var defaultText = 'Try them out:'
-        * var result = $('#first').wrap('<div class="red">xx<span></span>yy</div>').text()
-        * ok( 'xx' + defaultText + 'yy' == result, 'Check for wrapping' );
-        * ok( $('#first').parent().parent().is('.red'), 'Check if wrapper div has class "red"' );
+        * ok( defaultText == result, 'Check for wrapping of on-the-fly html' );
+        * ok( $('#first').parent().parent().is('.red'), 'Check if wrapper has class "red"' );
         *
         * @name wrap
         * @type jQuery
@@ -617,9 +615,17 @@ jQuery.fn = jQuery.prototype = {
         * provided and finding the deepest ancestor element within its
         * structure - it is that element that will en-wrap everything else.
         *
-        * @example $("p").wrap("<div class='wrap'></div>");
-        * @before <p>Test Paragraph.</p>
-        * @result <div class='wrap'><p>Test Paragraph.</p></div>
+        * This does not work with elements that contain text. Any necessary text
+        * must be added after the wrapping is done.
+        *
+        * @example $("p").wrap( document.getElementById('content') );
+        * @before <p>Test Paragraph.</p><div id="content"></div>
+        * @result <div id="content"><p>Test Paragraph.</p></div>
+        *
+        * @test var defaultText = 'Try them out:'
+        * var result = $('#first').wrap(document.getElementById('empty')).parent();
+        * ok( result.is('ol'), 'Check for element wrapping' );
+        * ok( result.text() == defaultText, 'Check for element wrapping' );
         *
         * @name wrap
         * @type jQuery
@@ -1522,9 +1528,9 @@ jQuery.extend({
                "@": {
                        "=": "z==m[4]",
                        "!=": "z!=m[4]",
-                       "^=": "!z.indexOf(m[4])",
-                       "$=": "z.substr(z.length - m[4].length,m[4].length)==m[4]",
-                       "*=": "z.indexOf(m[4])>=0",
+                       "^=": "z && !z.indexOf(m[4])",
+                       "$=": "z && z.substr(z.length - m[4].length,m[4].length)==m[4]",
+                       "*=": "z && z.indexOf(m[4])>=0",
                        "": "z"
                },
                "[": "jQuery.find(m[2],a).length"
@@ -1583,6 +1589,11 @@ jQuery.extend({
         * @test t( "Attribute Exists", "a[@title]", ["google"] );
         * @test t( "Attribute Exists", "*[@title]", ["google"] );
         * @test t( "Attribute Exists", "[@title]", ["google"] );
+        * 
+        * @test t( "Non-existing part of attribute [@name*=bla]", "[@name*=bla]", [] ); 
+        * @test t( "Non-existing start of attribute [@name^=bla]", "[@name^=bla]", [] ); 
+        * @test t( "Non-existing end of attribute [@name$=bla]", "[@name$=bla]", [] ); 
+        *
         * @test t( "Attribute Equals", "a[@rel='bookmark']", ["simon1"] );
         * @test t( "Attribute Equals", 'a[@rel="bookmark"]', ["simon1"] );
         * @test t( "Attribute Equals", "a[@rel=bookmark]", ["simon1"] );