2010-12-08 6 views
1

Ich versuche, ein Array aller Links auf einer Seite, deren href mit einer bestimmten Zeichenfolge (Teil der URL) übereinstimmt. Diese Methode funktioniert in allen Browsern außer IE, und ich bin mir nicht sicher warum.IE und String-Matching

var url = '/work.php?subsection=1'; 
a = $('clients').getElements('a[href^='+url+']'); 
alert(a.length); 

Ich bin mit Mootools, die das $('clients').getElements() Bit erklären würde.

In allen Browsern aber IE a.length gibt 10. IE zurück 0. Wer weiß warum?

Erwähnenswert ist, dass ich nur den ersten Teil des href benötige. So sollte <a href="/work.php?subsection=1&project=11"></a> übereinstimmen.

+0

Dies sollte wahrscheinlich mit 'Mootools' getaggt werden. – ClosureCowboy

Antwort

2

Ohne zu wissen, welche Version von Mootools Sie verwenden und ohne das Markup der Seite zu sehen, ist es schwierig, eine Antwort zu geben.

Könnte IE die URLs so behandeln, als wären sie voll qualifiziert? Mit anderen Worten, anstatt mit /work.php?subsection=1 anzufangen, könnte IE glauben, dass die URLs mit http://yourdomain.com/ beginnen?

Bearbeiten: Als eine Umgehung können Sie den [att*=val] Selektor verwenden, der basierend darauf übereinstimmt, ob das Attribut einfach den angegebenen Wert enthält. Wenn Sie der Meinung sind, dass Ihre URL /work.php?subsection=1 irgendwo anders als am Anfang enthält, und Sie wirklich nicht mit diesen übereinstimmen möchten, können Sie auch Ihre Domain dort hineinwerfen.

+0

Wissen Sie was? Ich denke, das ist es, verdammt noch mal. Nein! Warum zur Hölle macht es das? Muss ich auch die Domain holen? –

+0

Bitte sehen Sie meine Bearbeitung! Ich bin froh, dass du vor mir auf dieses Problem gestoßen bist ... Ich könnte mir vorstellen, dass das irgendwann meinen Tag ruiniert. – ClosureCowboy

+0

Du hast mir heute wirklich den Hintern gerettet. '[att * = val]' hat perfekt funktioniert. Vielen Dank!!! Ich habe ein paar Stunden damit zu kämpfen. –