diff options
author | John Resig <jeresig@gmail.com> | 2007-03-25 02:45:12 +0000 |
---|---|---|
committer | John Resig <jeresig@gmail.com> | 2007-03-25 02:45:12 +0000 |
commit | 25b424134f9927a5bf0bab5cba836a0aa6c3cfc1 (patch) | |
tree | 9cba863f74bfd9aa0faf5b9d3adbb9b0aa194473 /src | |
parent | ae208246fbd1708b72e822b61c9e24d3034d1a05 (diff) | |
download | jquery-25b424134f9927a5bf0bab5cba836a0aa6c3cfc1.tar.gz jquery-25b424134f9927a5bf0bab5cba836a0aa6c3cfc1.zip |
Diffstat (limited to 'src')
-rw-r--r-- | src/selector/selector.js | 2 | ||||
-rw-r--r-- | src/selector/selectorTest.js | 15 |
2 files changed, 14 insertions, 3 deletions
diff --git a/src/selector/selector.js b/src/selector/selector.js index 1c6d80c1e..cc37584f5 100644 --- a/src/selector/selector.js +++ b/src/selector/selector.js @@ -61,7 +61,7 @@ jQuery.extend({ }, _prefix: "z=a[m[3]];if(!z||/href|src/.test(m[3]))z=jQuery.attr(a,m[3]);" }, - "[": "jQuery.find(m[2],a).length" + "[": "parseInt(m[2])?jQuery.nth(a.parentNode.firstChild,parseInt(m[2]),'nextSibling',a)==a:jQuery.find(m[2],a).length" }, // The regular expressions that power the parsing engine diff --git a/src/selector/selectorTest.js b/src/selector/selectorTest.js index 918074327..59af2ff0b 100644 --- a/src/selector/selectorTest.js +++ b/src/selector/selectorTest.js @@ -85,7 +85,7 @@ test("multiple", function() { }); test("child and adjacent", function() { - expect(14); + expect(22); t( "Child", "p > a", ["simon1","google","groups","mark","yahoo","simon"] ); t( "Child", "p> a", ["simon1","google","groups","mark","yahoo","simon"] ); t( "Child", "p >a", ["simon1","google","groups","mark","yahoo","simon"] ); @@ -99,7 +99,18 @@ test("child and adjacent", function() { t( "Adjacent", "a+a", ["groups"] ); t( "Adjacent", "p + p", ["ap","en","sap"] ); t( "Comma, Child, and Adjacent", "a + a, code > a", ["groups","anchor1","anchor2"] ); + t( "First Child", "p:first-child", ["firstp","sndp"] ); + t( "Nth Child", "p:nth-child(1)", ["firstp","sndp"] ); + t( "First Child, XPath", "p[1]", ["firstp","sndp"] ); + + t( "Last Child", "p:last-child", ["sap"] ); + t( "Last Child, XPath", "p[3]", ["sap"] ); + + t( "Nth-child", "#main form > *:nth-child(2)", ["text2"] ); + t( "Nth-child, XPath", "#main form > *[2]", ["text2"] ); + t( "Nth-child", "#main form > :nth-child(2)", ["text2"] ); + t( "Nth-child, XPath", "#main form > [2]", ["text2"] ); }); test("attributes", function() { @@ -132,7 +143,7 @@ test("attributes", function() { t( ":not() Equals quoted attribute", "select:not([@name='select1'])", ["select2", "select3"]); }); -test("pseudo (:) selctors", function() { +test("pseudo (:) selectors", function() { expect(30); t( "First Child", "p:first-child", ["firstp","sndp"] ); t( "Last Child", "p:last-child", ["sap"] ); |