Ich habe nach einer anderen CSS-Selektorfunktion als Sizzle gesucht und bin auf this function gestoßen.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;
}
ich nur das Gefühl, dass es zu gut ist, um wahr zu sein, ist dies eine firefox nur Funktion (XPath?) Oder ist es langsam? Warum sollte ich Sizzle benutzen?
Ich denke, es ist nur Firefox, wie enttäuschend. Anscheinend kann IE es auf XML-Dokumenten tun. – Olical
o mein Gott endlich fand ich jemand denken, genauso wie iam :)))))))))))) http://stackoverflow.com/questions/15310502/how-to-create-a- Javascript-Selektor-Engine – Marwan