mirror of
https://github.com/jquery/jquery.git
synced 2024-11-23 02:54:22 +00:00
jquery core: fix for #1960, delegating to document.getElementsByName for [name=...] selectors (not in combination with :not)
This commit is contained in:
parent
ab756ceab0
commit
4d652ca520
@ -331,25 +331,31 @@ jQuery.extend({
|
|||||||
r = jQuery.classFilter(r, m[2], not);
|
r = jQuery.classFilter(r, m[2], not);
|
||||||
|
|
||||||
else if ( m[1] == "[" ) {
|
else if ( m[1] == "[" ) {
|
||||||
var tmp = [], type = m[3];
|
var type = m[3];
|
||||||
|
|
||||||
for ( var i = 0, rl = r.length; i < rl; i++ ) {
|
// special case, filter by exact name
|
||||||
var a = r[i], z = a[ jQuery.props[m[2]] || m[2] ];
|
if ( !not && m[2] == 'name' && type == '=' )
|
||||||
|
r = jQuery.grep( document.getElementsByName(m[5]), function(elem){
|
||||||
|
return jQuery.inArray( elem, r ) != -1;
|
||||||
|
});
|
||||||
|
else {
|
||||||
|
for ( var i = 0, rl = r.length, tmp = []; i < rl; i++ ) {
|
||||||
|
var a = r[i], z = a[ jQuery.props[m[2]] || m[2] ];
|
||||||
|
|
||||||
if ( z == null || /href|src|selected/.test(m[2]) )
|
if ( z == null || /href|src|selected/.test(m[2]) )
|
||||||
z = jQuery.attr(a,m[2]) || '';
|
z = jQuery.attr(a,m[2]) || '';
|
||||||
|
|
||||||
if ( (type == "" && !!z ||
|
if ( (type == "" && !!z ||
|
||||||
type == "=" && z == m[5] ||
|
type == "=" && z == m[5] ||
|
||||||
type == "!=" && z != m[5] ||
|
type == "!=" && z != m[5] ||
|
||||||
type == "^=" && z && !z.indexOf(m[5]) ||
|
type == "^=" && z && !z.indexOf(m[5]) ||
|
||||||
type == "$=" && z.substr(z.length - m[5].length) == m[5] ||
|
type == "$=" && z.substr(z.length - m[5].length) == m[5] ||
|
||||||
(type == "*=" || type == "~=") && z.indexOf(m[5]) >= 0) ^ not )
|
(type == "*=" || type == "~=") && z.indexOf(m[5]) >= 0) ^ not )
|
||||||
tmp.push( a );
|
tmp.push( a );
|
||||||
|
}
|
||||||
|
r = tmp;
|
||||||
}
|
}
|
||||||
|
|
||||||
r = tmp;
|
|
||||||
|
|
||||||
// We can get a speed boost by handling nth-child here
|
// We can get a speed boost by handling nth-child here
|
||||||
} else if ( m[1] == ":" && m[2] == "nth-child" ) {
|
} else if ( m[1] == ":" && m[2] == "nth-child" ) {
|
||||||
var merge = {}, tmp = [],
|
var merge = {}, tmp = [],
|
||||||
|
Loading…
Reference in New Issue
Block a user