diff --git a/src/jquery/coreTest.js b/src/jquery/coreTest.js index 287d70985..2692715fa 100644 --- a/src/jquery/coreTest.js +++ b/src/jquery/coreTest.js @@ -261,6 +261,7 @@ test("clone()", function() { test("filter()", function() { isSet( $("input").filter(":checked").get(), q("radio2", "check1"), "filter(String)" ); isSet( $("p").filter(["#ap", "#sndp"]).get(), q("ap", "sndp"), "filter(Array<String>)" ); + isSet( $("p").filter(function(el) { return !$("a", el).length }).get(), q("sndp", "first"), "filter(Function)" ); }); test("not(String)", function() { diff --git a/src/jquery/jquery.js b/src/jquery/jquery.js index 8b28fdbcc..14d2e0a3c 100644 --- a/src/jquery/jquery.js +++ b/src/jquery/jquery.js @@ -852,13 +852,34 @@ jQuery.fn = jQuery.prototype = { * * @example $("p").filter(".selected") * @before

Hello

How are you?

- * @result $("p").filter(".selected") == [

Hello

] + * @result [

Hello

] * * @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

  1. Hello

How are you?

+ * @result [

How are you?

] + * @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

Hello

Hello Again

And Again

- * @result $("p").filter([".selected", ":first"]) == [

Hello

,

And Again

] + * @result [

Hello

,

And Again

] * * @name filter * @type jQuery