2017-02-19 5 views
0

Ich habe einen Link, der einen Inhalt innerhalb eines divs beim Klicken anzeigt/verbirgt, was ich versuche zu tun ist eine Schaltfläche zu haben, die ein bestimmtes div (den Inhalt in sektiontohide1) innerhalb des divs versteckt ((klicken Sie auf). Ich habe die Javascript arbeitet für den ersten Link bekam (sectiontohide) und es funktioniert, aber ich kann nicht herausfinden, wie man die zweite Verbindung bekommen die div für das Zeigen/Onclick hide div Element

<a id="trackAttendance1" onclick="loadtable('sectiontohide');"  class="trackAttendance" href="#">Track Absences</a> 
<div id="sectiontohide" style="display:none;"> 
<table> 
    <div id="sectiontohide1"> 
     <tr> 
      <td>Web Programming Seminar</td> 
      <th id="absent" rowspan="2">Absent</th> 
     </tr> 
     <tr> 
       <td>TUESDAY 2:00-3:00 - 21/02/2017</td> 
     </tr> 
    </div> 

     <td>Management in IT</td> 
     <th id="absent" rowspan="2">Absent</th> 

     <tr> 
     <td>FRIDAY 9:00-11:00 - 24/02/2017</td> 
     </tr> 

    <tr> 
     <td>Web Programming Lecture</td> 
     <th id="absent" rowspan="2">Absent</th> 
    </tr> 
     <tr> 
     <td>FRIDAY 12:00-1:00 - 24/02/2017</td> 
     </tr> 
</table> 

<a id="trackAttendance1" onclick="hidediv('sectiontohide1');" class="close"  href="#">Hide Element</a> 

Mein Javascript zu verstecken versteckt den Tisch

function loadtable(id){ 
var divelement = document.getElementById(id); 

if(divelement.style.display =='none') 
divelement.style.display = 'block'; 
else 
    divelement.style.display = 'none'; 
} 
+0

gut, wenn Sie die erste funktionierte, dann ist sicherlich die zweite gleich. Ersetzen Sie Ihre "onclick =" hidediv ('sectiontohide1'); "to" loadtable ('sectiontohide1'); " –

+0

Eine Randnotiz: Eine ID kann nur pünktlich in einem HTML-Dokument verwendet werden. Ersetzen Sie also" id = "abwesend" B. auf Ihren Elementen mit einer Klasse ('class =" abwesend "'). Sie könnten auch Datenattribute verwenden. – floriangosse

+0

Das 'div # sectiontohide1' ist an dieser Stelle nicht erlaubt, da Sie nur gültige Tabellenelemente als untergeordnete Elemente verwenden können eine Tabelle – floriangosse

Antwort

0

Ihre loadtable Funktion schaltet tatsächlich die Sichtbarkeit des Elements durch den angegebenen ID.

So können Sie es auch zum Anzeigen/Verbergen für die anderen Teile ausführen. Dazu sollte es ausreichen, um den Click-Handler der Schließen-Schaltfläche sind auch einige andere Probleme

Aber es zu loadtable('sectiontohide1'); zu ändern, zum Beispiel:

  • A div kann nur in einer Tabelle platziert werden, wenn es umgeben von einem <td></td> oder <th></th>
  • <th>-Tag ist für Kopf es so nur von der Tabelle oben verwenden, können Sie CSS für das Styling der Zellen
  • <td> und <th> Tags sollten immer umgeben von einemverwenden können
+0

Danke für die Rückmeldung – TF120

0

Sieht aus, als ob Sie auf dem richtigen Weg waren. Um nur hide der div, versuchen Sie so etwas wie:

function hidediv(id) { 
    var divelement = document.getElementById(id); 
    divelement.style.display = 'none'; 
}