2017-02-07 4 views
0

Bearbeiten: Vielen Dank für Ihre Anregungen. Ich habe Änderungsvorschläge zu meiner Frage gemacht. Ich habe den Code bearbeitet, keine Syntaxfehler mehr, ich bekomme keine Fehler mehr vom Browser.

Dies ist das Problem, mit dem ich es jetzt zu tun habe: Ich bekomme die Warnmeldung "Null" in jeder Leistung.

Ich habe versucht, den Wert eines Elements mit einem Kontrollkästchen zu ändern, aus mehreren Gründen den Wert "1" oder "0". Um zu überprüfen, ob ich erfolgreich war, habe ich eine Warnung() in den Code eingefügt, um das geänderte Attribut zu erhalten. Ob ich das Kontrollkästchen ankreuze oder deaktiviere, bekomme ich nur die Nachricht "undefiniert". Ich denke, ich bin mit der Synchronisation fertig, aber ich weiß nicht wie.

$(document).ready(function() { 
 
    
 
$("#checkTabsence").change(function(){ 
 
    if($(this).is(':checked')) 
 
    { 
 
     var tutorPresence = document.getElementById("tutorCheckEl"); 
 
      tutorPresence.setAttribute = ("href", "1"); 
 
     var alertme = tutorPresence.getAttribute("href"); 
 
     alert(alertme) 
 
    } 
 
    else 
 
    { 
 
     var tutorPresence = document.getElementById("tutorCheckEl"); 
 
      tutorPresence.setAttribute = ("href", "0"); 
 
     var alertme = tutorPresence.getAttribute("href"); 
 
     alert(alertme) 
 
    }  
 

 

 
}); 
 
    });
<html> 
 
<input type="checkbox" id="checkTabsence"> 
 
<a id="tutorCheckEl" style="display:none;"></a> 
 
</html>

+0

ist, wo ist ‚#checkTabsence '? –

+0

Bitte fügen Sie den Rest des HTML-Codes – user489872

+1

ein paar Kommentare: 1) Veröffentlichen Sie eine [MCVE]. Sie verweisen auf '$ (" # checkTabsence ")' aber Ihr Beispiel hat kein solches Element, 2) Wenn Sie jQuery verwenden, können Sie 'document.getElementById (" tutorCheckEl ")' vermeiden und '$ ('# tutorCheckEl')' verwenden und 3) Normalerweise verwenden Sie '.val()' anstelle von '.attr (" value ")' – j08691

Antwort

2

Sie haben ein paar Probleme bekommen:

  1. Sie versuchen .attr() auf einem normalen DOM-Elemente zu nennen, aber .attr() ist eine Funktion jQuery. Rufen Sie entweder setAttribute() für das DOM-Element auf, oder verwenden Sie jQuery anstelle von getElementById.
  2. Sie vergessen, dass die jQuery-ID-Selektoren mit einem # vorangestellt werden müssen. Ändern Sie $("tutorCheckEl") zu $("#tutorCheckEl").
  3. Wenn Sie vorhaben, .attr() in jQuery zu verwenden, die Syntax ein Attribut gesetzt ist tutorPresence.attr("value", "1")
  4. Wenn Sie setAttribute(), die Syntax verwenden werden ein Attribut gesetzt tutorPresence.setAttribute("value", "1")
1

Das Problem ist, dass $("tutorCheckEl") Begegnungen gegen eine <tutorCheckEl>, die ich Ihnen auf der Seite haben zweifeln.

Wollten Sie vielleicht $("#tutorCheckEl") verwenden, was <a id="tutorCheckEl"> (oder in der Tat irgendein Element mit id="tutorCheckEl")?

Auch ein Anker-Tag (<a>) hat kein value Attribut. value ist für eingabetypische Elemente.

+0

Ich habe den Code entsprechend bearbeitet. Jetzt bekomme ich "Uncaught TypeError: Kann die Eigenschaft 'setAttribute' von Null nicht setzen" Fehler. – Ahmet

Verwandte Themen