Iteração sobre
-
22-07-2019 - |
Pergunta
Este não é tão simples como se pode pensar. Eu estou usando um plugin chamado jQuery MultiSelect e múltipla < selecione> opções usando XSLT da seguinte forma:
<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>
O JavaScript que acompanha é o seguinte:
var selects = document.getElementsByTagName("select");
$.each(selects, function() {
$(this).multiSelect();
});
Isso me permite aplicar o multiselect (); função para cada
O comportamento é muito estranho, todos os outros
Todas as idéias?
Solução
Eu não tinha ouvido a tag 'Halloween problema' antes, mas Robert pode estar correto.
O nodelist retornou de getElementsByTagName é dinâmico ou seja, adicionando ou removendo, neste caso seleciona, vai mudar o nodelist após ele ter sido criado.
try
//hoping for magic here
$('select').multiSelect();
ou
$('select').each( function() {
$(this).multiSelect();
});
Outras dicas
soa como um problema Halloween ( http: // blogs .msdn.com / mikechampion / Arquivo / 2006/07/20 / 672208.aspx ) em Multiselect, mas desde que eu não sei Multiselect eu não posso dizer com certeza.
Tente isto:
jQuery('select').each(function(){selectAll(this.id)});