Szukałem funkcji selektora CSS innej niż Sizzle i natknąłem się na this function.document.evaluate - Cross browser?
function SparkEn(xpath,root) {
xpath = xpath
.replace(/((^|\|)\s*)([^/|\s]+)/g,'$2.//$3')
.replace(/\.([\w-]+)(?!([^\]]*]))/g, '[@class="$1" or @class$=" $1" or @class^="$1 " or @class~=" $1 "]')
.replace(/#([\w-]+)/g, '[@id="$1"]')
.replace(/\/\[/g,'/*[');
str = '(@\\w+|"[^"]*"|\'[^\']*\')';
xpath = xpath
.replace(new RegExp(str+'\\s*~=\\s*'+str,'g'), 'contains($1,$2)')
.replace(new RegExp(str+'\\s*\\^=\\s*'+str,'g'), 'starts-with($1,$2)')
.replace(new RegExp(str+'\\s*\\$=\\s*'+str,'g'), 'substring($1,string-length($1)-string-length($2)+1)=$2');
var got = document.evaluate(xpath, root||document, null, 5, null);
var result=[];
while (next = got.iterateNext())
result.push(next);
return result;
}
czuję się jak to jest zbyt piękne, aby mogło być prawdziwe, czy jest to tylko funkcja firefox (XPath?) Czy jest to powoli? Zasadniczo dlaczego miałbym używać Sizzle?
Myślę, że to tylko firefox, jakże rozczarowujące. Najwyraźniej IE może to zrobić na dokumentach XML. – Olical
o mój Boże w końcu znalazłem kogoś myślącego tak samo jak iam :))))))))))))) http://stackoverflow.com/questions/15310502/how-to-createa-a- javascript-selector-engine – Marwan