From: John Resig Date: Sat, 28 Apr 2007 15:39:30 +0000 (+0000) Subject: Added support for finding elements that have underscores in their name (along with... X-Git-Url: http://git.asbjorn.biz/?p=jquery.git;a=commitdiff_plain;h=fce2bdf7ff1d5a293690c65de36a7824a50bc54f Added support for finding elements that have underscores in their name (along with other allowed characters). Fix for ticket #1084. --- diff --git a/build/test/index.html b/build/test/index.html index 10e74cc..38fdad9 100644 --- a/build/test/index.html +++ b/build/test/index.html @@ -85,6 +85,8 @@ + + test element Float test. diff --git a/src/selector/selector.js b/src/selector/selector.js index d6d87c0..be50d33 100644 --- a/src/selector/selector.js +++ b/src/selector/selector.js @@ -80,7 +80,7 @@ jQuery.extend({ // Match: :even, :last-chlid, #id, .class new RegExp("^([:.#]*)(" + - ( jQuery.chars = "(?:[\\w\u0128-\uFFFF*-]|\\\\.)" ) + "+)") + ( jQuery.chars = "(?:[\\w\u0128-\uFFFF*_-]|\\\\.)" ) + "+)") ], token: [ @@ -152,7 +152,7 @@ jQuery.extend({ // An attempt at speeding up child selectors that // point to a specific element tag - var re = /^[\/>]\s*([\w*-]+)/; + var re = new RegExp("^[/>]\\s*(" + jQuery.chars + "+)"); var m = re.exec(t); if ( m ) { @@ -207,7 +207,7 @@ jQuery.extend({ } else { // Optomize for the case nodeName#idName - var re2 = new RegExp("^(\\w+)(#)(" + jQuery.chars + "+)"); + var re2 = new RegExp("^(" + jQuery.chars + "+)(#)(" + jQuery.chars + "+)"); var m = re2.exec(t); // Re-organize the results, so that they're consistent diff --git a/src/selector/selectorTest.js b/src/selector/selectorTest.js index 23f44c3..07e4d50 100644 --- a/src/selector/selectorTest.js +++ b/src/selector/selectorTest.js @@ -1,7 +1,7 @@ module("selector"); test("element", function() { - expect(8); + expect(9); ok( $("*").size() >= 30, "Select all" ); t( "Element Selector", "div", ["main","foo"] ); t( "Element Selector", "body", ["body"] ); @@ -11,6 +11,8 @@ test("element", function() { ok( $("#length").length, '<input name="length"> cannot be found under IE, see #945' ); ok( $("#lengthtest input").length, '<input name="length"> cannot be found under IE, see #945' ); + + t( "Element Selector with underscore", "foo_bar", ["foobar"] ); }); test("broken", function() { @@ -204,4 +206,4 @@ test("basic xpath", function() { $("#foo").each(function() { isSet( $("/p", this).get(), q("sndp", "en", "sap"), "Check XPath context" ); }); -}); \ No newline at end of file +});