2009-06-17 8 views
0

je suis en train d'ajouter une étiquette de javascript, mais im obtenir erreurétiquette en ajoutant de javascript

ce que je faisais était:

document.getElementById(option).innerHTML="<label onclick='updateInfo('edit','qualification',"+data_id+","+data+")>"+data+"</label>"; 

ce que je fais mal?

+2

Si vous utilisez jQuery, pourquoi ne pas utiliser les sélecteurs jQuery au lieu de getElementById? – tschaible

+0

++ tschaible. – jrharshath

Répondre

5

Je pense que l'erreur est avec les guillemets dans la fonction. Vous devez échapper aux citations.

document.getElementById('option').innerHTML="<label onclick=\"updateInfo('edit','qualification','"+2+"','"+test+"')\">"+data+"</label>"; 
1

Outre les problèmes avec innerHTML en général, vous êtes:

  1. Essayer de JavaScript attribuer avec innerHTML
  2. Apparemment essayer de régler le innerHTML d'une option <> élément - qui peut contenir seulement le texte (pas les éléments) — soit cela ou vous utilisez des noms de variables confus.
  3. Essayer de créer une étiquette <> qui n'est pas associée (au moyen d'un attribut for ou d'éléments enfants) à un contrôle de formulaire.
  4. Obtenir vos guillemets (un autre confuses problème avec l'utilisation concaténation des cordes et innerHTML)
0

Les citations sont fausses. vous avez utilisé des guillemets simples pour citer la valeur onclick et son contenu.

onclick='updateInfo('edit','qualification'," 
0

Une autre façon est d'utiliser document.createElement() et document.appendChild() pour éviter l'échappement. Cela rend également le code plus lisible.

 var option = document.getElementById("option_id"); 
     var label = document.createElement("label"); 
     label.onclick = function() { 
      updateInfo('edit','qualificn',"'" + data_id + "'", "'" + data + "'") 
     } 
     label.innerHTML = data; 
     option.appendChild(label); 
Questions connexes