Added test and documentation for filter(Function)
authorJörn Zaefferer <joern.zaefferer@gmail.com>
Mon, 1 Jan 2007 15:22:10 +0000 (15:22 +0000)
committerJörn Zaefferer <joern.zaefferer@gmail.com>
Mon, 1 Jan 2007 15:22:10 +0000 (15:22 +0000)
src/jquery/coreTest.js
src/jquery/jquery.js

index 287d709..2692715 100644 (file)
@@ -261,6 +261,7 @@ test("clone()", function() {
 test("filter()", function() {\r
        isSet( $("input").filter(":checked").get(), q("radio2", "check1"), "filter(String)" );\r
        isSet( $("p").filter(["#ap", "#sndp"]).get(), q("ap", "sndp"), "filter(Array&lt;String&gt;)" );\r
+       isSet( $("p").filter(function(el) { return !$("a", el).length }).get(), q("sndp", "first"), "filter(Function)" );\r
 });\r
 \r
 test("not(String)", function() {\r
index 8b28fdb..14d2e0a 100644 (file)
@@ -852,13 +852,34 @@ jQuery.fn = jQuery.prototype = {
         *
         * @example $("p").filter(".selected")
         * @before <p class="selected">Hello</p><p>How are you?</p>
-        * @result $("p").filter(".selected") == [ <p class="selected">Hello</p> ]
+        * @result [ <p class="selected">Hello</p> ]
         *
         * @name filter
         * @type jQuery
         * @param String expr An expression to search with.
         * @cat DOM/Traversing
         */
+        
+       /**
+        * Removes all elements from the set of matched elements that do not
+        * pass the specified filter. This method is used to narrow down
+        * the results of a search.
+        *
+        * The elements to filter are passed as the first argument, their
+        * index inside the set as the second.
+        *
+        * @example $("p").filter(function(element, index) {
+        *   return $("ol", element).length == 0;
+        * })
+        * @before <p><ol><li>Hello</li></ol></p><p>How are you?</p>
+        * @result [ <p>How are you?</p> ]
+        * @desc Remove all elements that have a child ol element
+        *
+        * @name filter
+        * @type jQuery
+        * @param Function filter A function to use for filtering
+        * @cat DOM/Traversing
+        */
 
        /**
         * Removes all elements from the set of matched elements that do not
@@ -871,7 +892,7 @@ jQuery.fn = jQuery.prototype = {
         *
         * @example $("p").filter([".selected", ":first"])
         * @before <p>Hello</p><p>Hello Again</p><p class="selected">And Again</p>
-        * @result $("p").filter([".selected", ":first"]) == [ <p>Hello</p>, <p class="selected">And Again</p> ]
+        * @result [ <p>Hello</p>, <p class="selected">And Again</p> ]
         *
         * @name filter
         * @type jQuery