2010-11-19 15 views
9

Sto scrivendo uno script di convalida del modulo per un modulo con più valutazioni, e vorrei inserire un po 'di testo che dice "dare una valutazione!" per ogni valutazione l'utente non riesce. Ho scritto il codice qui sotto per farlo, ma sto incontrando un problema in cui il nodo give_rating viene aggiunto solo all'ultimo nodo del modulo. So che questo è dovuto al fatto che appendChild fondamentalmente sposta un nodo invece di duplicarlo, e ho provato a risolverlo usando cloneNode ma questo interrompe completamente il mio JS.Utilizzo di appendChild più volte con lo stesso nodo in JS

In ogni caso, ecco il codice. Che cosa sto facendo di sbagliato?

Grazie per il vostro aiuto,

Chris

var give_rating = document.createElement('span'); 
give_rating.className='small red'; 
give_rating.innerHTML = '<strong> &nbsp;Give a rating!</strong>'; 

document.getElementById('rating1').appendChild(give_rating); 
document.getElementById('rating2').appendChild(give_rating); 

Quando uso il codice precedente codice di give_rating viene aggiunto solo per 'rating2'.

document.getElementById('rating1').appendChild(give_rating.cloneNode(True)); 
document.getElementById('rating2').appendChild(give_rating.cloneNode(True)); 

Quando uso questo codice, l'intero script non riesce. Come aggiungo un'istanza di "Dai una valutazione!" per ogni valutazione sul mio modulo che l'utente non riesce a compilare?

risposta

4

JavaScript fa distinzione tra maiuscole e minuscole: True deve essere true (lettere minuscole).

+0

OMG casablanca, ho letteralmente scaricato Firebug subito dopo aver inviato questa domanda, ho eseguito Console e l'ho capito. Grazie per la risposta. JS mi fa impazzire :) – Chris

0
  1. È possibile inserire gli elementi html o i frammenti del documento solo una volta. Quindi, devi chiamare la funzione cloneNode().
  2. Il javascript fa distinzione tra maiuscole e minuscole. Quindi, dovrebbe essere cloneNode(true), anziché cloneNode(True).
  3. È possibile attivare il debugger javascript del browser (sia Chrome che IE/Edge) premendo F12. Quindi puoi vedere cosa succede alla tua sceneggiatura.
Problemi correlati