2009-06-17 15 views
0

Ich versuche, eine Beschriftung hinzufügen von Javascript, aber im immer FehlerZugabe Etikett von Javascript

, was ich tat, war:

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

, was mache ich falsch?

+2

Wenn Sie jQuery verwenden, warum nicht jQuery-Selektoren anstelle von getElementById verwenden? – tschaible

+0

++ tschäible. – jrharshath

Antwort

5

Ich denke, der Fehler ist mit den Anführungszeichen in der Funktion. Sie müssen den Zitaten entkommen.

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

Abgesehen von den Problemen mit innerHTML- im Allgemeinen, Sie sind:

  1. JavaScript mit innerHTML- zuweisen Der Versuch, versuchen
  2. Offenbar die Innerhtml eines < option> Element zu setzen - die enthalten Nur Text (keine Elemente) — Entweder das oder du verwendest verwirrende Variablennamen.
  3. Der Versuch, eine <-Bezeichnung zu erstellen, die nicht mit einem Formularsteuerelement verknüpft ist (über ein for-Attribut oder untergeordnete Elemente).
  4. Ihre neues Angebot verworren Marken (ein weiteres Problem mit Zeichenfolge Verketten und innerHTML- mit)
0

Die Zitate sind falsch. Sie haben einzelne Anführungszeichen verwendet, um den onclick-Wert und dessen Inhalt zu zitieren.

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

Ein anderer Weg ist document.createElement() und document.appendChild() zu verwenden, um das Entkommen zu vermeiden. Es macht auch den Code lesbarer.

 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);