X-Git-Url: http://git.asbjorn.it/?a=blobdiff_plain;f=src%2Fselector.js;h=517ea607538809e4b0dd4339f9469204652c141e;hb=e06da1724cf05a83e14efa8b854348ac4e4a599a;hp=0199a27092674fe2812a9265703e204a54a5ded9;hpb=4bbb70b4eb0bcd93c99c0bfcfcf4fc44504c4c41;p=jquery.git
diff --git a/src/selector.js b/src/selector.js
index 0199a27..517ea60 100644
--- a/src/selector.js
+++ b/src/selector.js
@@ -65,7 +65,7 @@ var Sizzle = function(selector, context, results, seed) {
if ( context ) {
var ret = seed ?
{ expr: parts.pop(), set: makeArray(seed) } :
- Sizzle.find( parts.pop(), parts.length === 1 && context.parentNode ? context.parentNode : context, contextXML );
+ Sizzle.find( parts.pop(), parts.length === 1 && (parts[0] === "~" || parts[0] === "+") && context.parentNode ? context.parentNode : context, contextXML );
set = ret.expr ? Sizzle.filter( ret.expr, ret.set ) : ret.set;
if ( parts.length > 0 ) {
@@ -656,7 +656,7 @@ var Expr = Sizzle.selectors = {
var origPOS = Expr.match.POS;
for ( var type in Expr.match ) {
- Expr.match[ type ] = RegExp( Expr.match[ type ].source + /(?![^\[]*\])(?![^\(]*\))/.source );
+ Expr.match[ type ] = new RegExp( Expr.match[ type ].source + /(?![^\[]*\])(?![^\(]*\))/.source );
}
var makeArray = function(array, results) {
@@ -735,9 +735,9 @@ if ( document.documentElement.compareDocumentPosition ) {
// querying by getElementById (and provide a workaround)
(function(){
// We're going to inject a fake input element with a specified name
- var form = document.createElement("form"),
+ var form = document.createElement("div"),
id = "script" + (new Date).getTime();
- form.innerHTML = "";
+ form.innerHTML = "";
// Inject it into the root element, check its status, and remove it quickly
var root = document.documentElement;
@@ -826,10 +826,9 @@ if ( document.querySelectorAll ) (function(){
return oldSizzle(query, context, extra, seed);
};
- Sizzle.find = oldSizzle.find;
- Sizzle.filter = oldSizzle.filter;
- Sizzle.selectors = oldSizzle.selectors;
- Sizzle.matches = oldSizzle.matches;
+ for ( var prop in oldSizzle ) {
+ Sizzle[ prop ] = oldSizzle[ prop ];
+ }
})();
if ( document.getElementsByClassName && document.documentElement.getElementsByClassName ) (function(){
@@ -970,7 +969,7 @@ jQuery.expr = Sizzle.selectors;
jQuery.expr[":"] = jQuery.expr.filters;
Sizzle.selectors.filters.hidden = function(elem){
- return elem.offsetWidth === 0 || elem.offsetHeight === 0;
+ return elem.offsetWidth === 0 && elem.offsetHeight === 0;
};
Sizzle.selectors.filters.visible = function(elem){