Added the new :has() selector (Bug #1521)

This commit is contained in:
John Resig 2007-08-21 07:33:52 +00:00
parent c8bd6e0a4a
commit 46e770352a
2 changed files with 6 additions and 2 deletions

View file

@ -53,7 +53,10 @@ jQuery.extend({
image: "'image'==a.type",
reset: "'reset'==a.type",
button: '"button"==a.type||jQuery.nodeName(a,"button")',
input: "/input|select|textarea|button/i.test(a.nodeName)"
input: "/input|select|textarea|button/i.test(a.nodeName)",
// :has()
has: "jQuery.find(m[3],a).length"
},
"[": "jQuery.find(m[2],a).length"
},

View file

@ -197,7 +197,7 @@ test("pseudo (:) selectors", function() {
});
test("basic xpath", function() {
expect(16);
expect(17);
ok( jQuery.find("//*").length >= 30, "All Elements (//*)" );
ok( jQuery.find("//div", q("main")[0])[0] = q("foo")[0], "All Relative (#main//div)" );
t( "All P Elements", "//p", ["firstp","ap","sndp","en","sap","first"] );
@ -213,6 +213,7 @@ test("basic xpath", function() {
t( "Sibling Axis", "//p/../", ["firstp","ap","foo","first","firstUL","empty","form","floatTest","iframe","lengthtest","table","fx-queue","fx-tests","sndp","en","sap"] );
t( "Sibling Axis", "//p/../*", ["firstp","ap","foo","first","firstUL","empty","form","floatTest","iframe","lengthtest","table","fx-queue","fx-tests","sndp","en","sap"] );
t( "Has Children", "//p[a]", ["firstp","ap","en","sap"] );
t( "Has Children - :has()", "//p:has(a)", ["firstp","ap","en","sap"] );
$("#foo").each(function() {
isSet( $("/p", this).get(), q("sndp", "en", "sap"), "Check XPath context" );