Inizialmente chiedevo un modo elegante per simulare la funzionalità Array.concat()
sui risultati della funzione getElementsByTagName
in IE o nei browser precedenti, perché sembrava che concat
non fosse supportato. Solo, ovviamente, il motivo per cui l'oggetto restituito non lo supporta è perché non è uno Array
. Oops!Javascript - Concatenare più NodeList insieme
getElementsByTagName
restituisce effettivamente un NodeList
. La vera domanda, quindi, è: qual è un buon modo per ottenere un singolo elenco di tutti gli elementi del modulo in un documento (input, select, textarea, pulsante) per scorrere in sequenza? Un array non è necessario ... anche un singolo NodeList
sarebbe perfetto.
Si noti che sto utilizzando IE6 come questo è per una intranet aziendale (presto IE8 però).
La risposta che mi venne in mente fu:
E 'diventato più semplice e probabilmente eseguita meglio appena messo il codice in una funzione separata e chiamarla tre volte con i diversi nodelists, piuttosto che preoccuparsi di un buon modo per riunirli in uno solo.
Alla fine sono passato a utilizzare MooTools (dopo diverse ore a leggere i confronti di tutti i diversi framework). Così ora, ottenere una serie di elementi che voglio è molto semplice. Raccomando di utilizzare un framework javascript come questo, piuttosto che persone che si battono il cervello cercando di capire il modo migliore per fare le cose. Certo che sono tutto per imparare effettivamente il linguaggio grezzo (è per questo che ho trattenuto l'uso di un framework per così tanto tempo) ma non è sempre il modo più veloce per far funzionare le cose, che in un'azienda spesso conta tanto come migliorare l'abilità del programmatore con la lingua.
Aggiornamento: quasi 2 anni dopo usavo solo jQuery e il gioco è fatto!
IE supporta questo, puoi chiarire un po 'la domanda? –
L'utilizzo di jQuery è sicuramente la soluzione giusta. Mi sono imbattuto in un caso in cui non avevo accesso a jQuery, però. Ho finito con la creazione di una serie di tag elemento su cui volevo agire e il suo looping, chiamando getElementsByTagName per ognuno. Mi chiedo se sia più o meno efficace della risposta più importante. – bpscott
@bpscott Ma hai messo tutti gli elementi in un singolo array in qualsiasi momento, o hai semplicemente lavorato con loro il valore di un tag alla volta? – ErikE