diff --git a/index.js b/index.js index 586fca13..815a0b8e 100644 --- a/index.js +++ b/index.js @@ -104,6 +104,13 @@ function parseSelector(subselects, selector, options){ selector = selector.substr(start); } + function checkEscaped(pos) { + var slashCount = 0; + + while (selector.charAt(--pos) === "\\") slashCount++; + return (slashCount & 1) === 0; + } + stripWhitespace(0); while(selector !== ""){ @@ -211,8 +218,8 @@ function parseSelector(subselects, selector, options){ var pos = 1, counter = 1; for(; counter > 0 && pos < selector.length; pos++){ - if(selector.charAt(pos) === "(") counter++; - else if(selector.charAt(pos) === ")") counter--; + if(selector.charAt(pos) === "(" && !checkEscaped(pos)) counter++; + else if(selector.charAt(pos) === ")" && !checkEscaped(pos)) counter--; } if(counter){