mirror of
https://github.com/jquery/jquery.git
synced 2024-11-23 02:54:22 +00:00
Add RegExp style xpath attributes and testcases. e.g. [@foo =~ /bar/i] and [@foo !~ /bar/]
This commit is contained in:
parent
bfe5f89106
commit
2fac5e7949
@ -56,6 +56,9 @@ jQuery.extend({
|
|||||||
"$=": "z&&z.substr(z.length - m[4].length,m[4].length)==m[4]",
|
"$=": "z&&z.substr(z.length - m[4].length,m[4].length)==m[4]",
|
||||||
"*=": "z&&z.indexOf(m[4])>=0",
|
"*=": "z&&z.indexOf(m[4])>=0",
|
||||||
"": "z",
|
"": "z",
|
||||||
|
// these are for evaling in a regexp.
|
||||||
|
"=~": "eval(m[4]).test(z)",
|
||||||
|
"!~": "!eval(m[4]).test(z)",
|
||||||
_resort: function(m){
|
_resort: function(m){
|
||||||
return ["", m[1], m[3], m[2], m[5]];
|
return ["", m[1], m[3], m[2], m[5]];
|
||||||
},
|
},
|
||||||
@ -67,7 +70,7 @@ jQuery.extend({
|
|||||||
// The regular expressions that power the parsing engine
|
// The regular expressions that power the parsing engine
|
||||||
parse: [
|
parse: [
|
||||||
// Match: [@value='test'], [@foo]
|
// Match: [@value='test'], [@foo]
|
||||||
/^\[ *(@)([\w-]+) *([!*$^=]*) *('?"?)(.*?)\4 *\]/,
|
/^\[ *(@)([\w-]+) *([!*$^=!~]*) *('?"?)(.*?)\4 *\]/,
|
||||||
|
|
||||||
// Match: [div], [div p]
|
// Match: [div], [div p]
|
||||||
/^(\[)\s*(.*?(\[.*?\])?[^[]*?)\s*\]/,
|
/^(\[)\s*(.*?(\[.*?\])?[^[]*?)\s*\]/,
|
||||||
|
@ -183,7 +183,7 @@ test("pseudo (:) selectors", function() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
test("basic xpath", function() {
|
test("basic xpath", function() {
|
||||||
expect(15);
|
expect(17);
|
||||||
ok( jQuery.find("//*").length >= 30, "All Elements (//*)" );
|
ok( jQuery.find("//*").length >= 30, "All Elements (//*)" );
|
||||||
t( "All Div Elements", "//div", ["main","foo"] );
|
t( "All Div Elements", "//div", ["main","foo"] );
|
||||||
t( "Absolute Path", "/html/body", ["body"] );
|
t( "Absolute Path", "/html/body", ["body"] );
|
||||||
@ -194,6 +194,8 @@ test("basic xpath", function() {
|
|||||||
t( "All Children, Implicit", "//code/", ["anchor1","anchor2"] );
|
t( "All Children, Implicit", "//code/", ["anchor1","anchor2"] );
|
||||||
t( "Attribute Exists", "//a[@title]", ["google"] );
|
t( "Attribute Exists", "//a[@title]", ["google"] );
|
||||||
t( "Attribute Equals", "//a[@rel='bookmark']", ["simon1"] );
|
t( "Attribute Equals", "//a[@rel='bookmark']", ["simon1"] );
|
||||||
|
t( "Attribute RegExp", "//a[@rel=~/BooKmaRk/i]", ["simon1"] );
|
||||||
|
t( "Attribute Inverse RegExp", "//a[@id!~/mon/]", ["google","groups","anchor1","mark","yahoo","anchor2"] );
|
||||||
t( "Parent Axis", "//p/..", ["main","foo"] );
|
t( "Parent Axis", "//p/..", ["main","foo"] );
|
||||||
t( "Sibling Axis", "//p/../", ["firstp","ap","foo","first","firstUL","empty","form","floatTest","iframe","lengthtest","sndp","en","sap"] );
|
t( "Sibling Axis", "//p/../", ["firstp","ap","foo","first","firstUL","empty","form","floatTest","iframe","lengthtest","sndp","en","sap"] );
|
||||||
t( "Sibling Axis", "//p/../*", ["firstp","ap","foo","first","firstUL","empty","form","floatTest","iframe","lengthtest","sndp","en","sap"] );
|
t( "Sibling Axis", "//p/../*", ["firstp","ap","foo","first","firstUL","empty","form","floatTest","iframe","lengthtest","sndp","en","sap"] );
|
||||||
|
Loading…
Reference in New Issue
Block a user