Frage
Das ist nicht ganz so einfach wie man denkt. Ich bin mit einem Plugin namens jQuery Multiselect und mehrere < wählen Sie> Optionen mit XSLT wie folgt:
<xsl:for-each select="RootField">
<select id="{RootField}" multiple="multiple" size="3">
<option value=""></option>
<xsl:for-each select="ChildField">
<option value="{ChildField}"><xsl:value-of select="ChildField"/></option>
</xsl:for-each>
</select>
</xsl:for-each>
Die zugehörige JavaScript ist wie folgt:
var selects = document.getElementsByTagName("select");
$.each(selects, function() {
$(this).multiSelect();
});
Dies ermöglicht es mir, die Multiselect () anzuwenden; Funktion für jede einzelne
Das Verhalten ziemlich seltsam ist, wird jeder andere
Irgendwelche Ideen?
Lösung
Ich würde nicht den ‚Halloween Problem‘ Tag zuvor gehört, aber Robert kann richtig sein.
Der Nodelist von getElementsByTagName zurück ist dynamisch heißt das Hinzufügen oder Entfernen, in diesem Fall wählt, wird den Nodelist ändern, nachdem es erstellt wurde.
Versuch
//hoping for magic here
$('select').multiSelect();
oder
$('select').each( function() {
$(this).multiSelect();
});
Andere Tipps
Klingt wie ein Halloween-Problem ( http: // blogs .msdn.com / mikechampion / Archiv / 2006/07/20 / 672208.aspx ) in multiselect, aber da ich multiselect weiß nicht, was ich sicher nicht sagen kann.
Versuchen Sie folgendes:
jQuery('select').each(function(){selectAll(this.id)});