Added support for finding elements that have underscores in their name (along with other allowed characters). Fix for ticket #1084.
This commit is contained in:
parent
610149fd19
commit
fce2bdf7ff
|
@ -85,6 +85,8 @@
|
||||||
<span id="utf8class2" class="台北"></span>
|
<span id="utf8class2" class="台北"></span>
|
||||||
<span id="foo:bar" class="foo:bar"></span>
|
<span id="foo:bar" class="foo:bar"></span>
|
||||||
<span id="test.foo[5]bar" class="test.foo[5]bar"></span>
|
<span id="test.foo[5]bar" class="test.foo[5]bar"></span>
|
||||||
|
|
||||||
|
<foo_bar id="foobar">test element</foo_bar>
|
||||||
</form>
|
</form>
|
||||||
<b id="floatTest">Float test.</b>
|
<b id="floatTest">Float test.</b>
|
||||||
<iframe id="iframe" name="iframe"></iframe>
|
<iframe id="iframe" name="iframe"></iframe>
|
||||||
|
|
|
@ -80,7 +80,7 @@ jQuery.extend({
|
||||||
|
|
||||||
// Match: :even, :last-chlid, #id, .class
|
// Match: :even, :last-chlid, #id, .class
|
||||||
new RegExp("^([:.#]*)(" +
|
new RegExp("^([:.#]*)(" +
|
||||||
( jQuery.chars = "(?:[\\w\u0128-\uFFFF*-]|\\\\.)" ) + "+)")
|
( jQuery.chars = "(?:[\\w\u0128-\uFFFF*_-]|\\\\.)" ) + "+)")
|
||||||
],
|
],
|
||||||
|
|
||||||
token: [
|
token: [
|
||||||
|
@ -152,7 +152,7 @@ jQuery.extend({
|
||||||
|
|
||||||
// An attempt at speeding up child selectors that
|
// An attempt at speeding up child selectors that
|
||||||
// point to a specific element tag
|
// point to a specific element tag
|
||||||
var re = /^[\/>]\s*([\w*-]+)/;
|
var re = new RegExp("^[/>]\\s*(" + jQuery.chars + "+)");
|
||||||
var m = re.exec(t);
|
var m = re.exec(t);
|
||||||
|
|
||||||
if ( m ) {
|
if ( m ) {
|
||||||
|
@ -207,7 +207,7 @@ jQuery.extend({
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
// Optomize for the case nodeName#idName
|
// 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);
|
var m = re2.exec(t);
|
||||||
|
|
||||||
// Re-organize the results, so that they're consistent
|
// Re-organize the results, so that they're consistent
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
module("selector");
|
module("selector");
|
||||||
|
|
||||||
test("element", function() {
|
test("element", function() {
|
||||||
expect(8);
|
expect(9);
|
||||||
ok( $("*").size() >= 30, "Select all" );
|
ok( $("*").size() >= 30, "Select all" );
|
||||||
t( "Element Selector", "div", ["main","foo"] );
|
t( "Element Selector", "div", ["main","foo"] );
|
||||||
t( "Element Selector", "body", ["body"] );
|
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( $("#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' );
|
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() {
|
test("broken", function() {
|
||||||
|
@ -204,4 +206,4 @@ test("basic xpath", function() {
|
||||||
$("#foo").each(function() {
|
$("#foo").each(function() {
|
||||||
isSet( $("/p", this).get(), q("sndp", "en", "sap"), "Check XPath context" );
|
isSet( $("/p", this).get(), q("sndp", "en", "sap"), "Check XPath context" );
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in a new issue