|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Jul 2009
Messaggi: 125
|
[javascript] stringhe e apostrofi
Ciao a tutti !! Con questo codice ( vedi in basso ) inserisco nel tag con id "results" i dati che prelevo tramite ajax da una struttura json "data". Il problema nasce quando in "data.books[i].name" c'è una stringa con apostrofo ( tipo "l'arte del tempo" o "il volo dell'acquilone"). In tal caso infatti la funzione onclick non funziona. Come potrei risolvere ?? Grazie per l' attenzione
![]() e = document.getElementById('results'); for(i=0; i<data.books.length; i++) { e.innerHTML += "<li><a href=\"#\" onclick=\"document.getElementById(\'search-q\').value='" + data.books[i].name + "';\" >" + data.books[i].name + "</a></li> "; } |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2774
|
Potresti provare facendo un replace di tutti gli apostrofi con \'
|
![]() |
![]() |
![]() |
#3 | |
Member
Iscritto dal: Jul 2009
Messaggi: 125
|
Quote:
![]() Per ora ho rimpiazzato gli apostrofi con ` ( il codice html dell' accento grave ) e funziona. Però preferirei usare gli apostrofi invece degli accenti gravi ![]() ![]() |
|
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2774
|
La console degli errori di firefox ti dice qualcosa di utile?
EDIT: Mi è venuta in mente anche un'altra idea: visto che il valore che vuoi assegnare è lo stesso del nodo a su cui stai lavorando potresti usare this.value (o è this.innerHTML? scusa ma non sono praticissimo di javascript, comunque credo che tu abbia capito): Codice:
e.innerHTML += "<li><a href=\"#\" onclick=\"document.getElementById(\'search-q\').value=this.value;\" >" + data.books[i].name + "</a></li> "; Ultima modifica di wingman87 : 11-01-2010 alle 23:51. |
![]() |
![]() |
![]() |
#5 | |
Member
Iscritto dal: Jul 2009
Messaggi: 125
|
Quote:
Comunque ho risolto ridando un' occhiatina alla console come hai detto ![]() Ecco l' errore: Codice:
name_quote = dati.books[i].name.replace(/[']/g,"\'"); Codice:
name_quote = dati.books[i].name.replace(/[']/g,"\\'"); Thanks ^_^ Ultima modifica di CercoAiutoo : 12-01-2010 alle 00:45. |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 16:48.