• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Tabellengerüst durcheinander generieren

gammelfleisch

Neues Mitglied
Hallo,

ich habe eine Tabelle, dessen Body ich zuerst erstelle, aber mithilfe von Jquery nachträglich ein Head eintrage. Geht das? Ich hab es im folgenden HTML-Code probiert und es hat nicht geklappt:

HTML:
<html>
<head><title>Test</title>
<script type="text/javascript">
function show(name){
    $("#running").append('<thead><tr><th>Name</th><th>Date</th></tr></thead>');
	document.write(name);
    $("#" + name).append('<tr><td>IS</td><td>SCHEDULED</td></tr>');
    $("#" + name).append('<tr><td>TA</td><td>DAAA</td></tr>');
}
</script>
</head>
<body>Hallo
<div id="running">
	<table border="0">
		<tbody id="run">
		    <script type="text/javascript">
		    show("run");
		    </script>
		</tbody>
	</table>
</div>
</body>
</html>

Liegt es daran, dass ich was falsch gemacht hab oder geht sowas grundsätzlich nicht?

Mein Ziel ist, dass ich mehrere DIV's habe und sonst jedesmal den head-Teil der Tabelle um den body hardcoden müsste, aber die Struktur vom head ist abhängig von der Variable "name".
 
Du müsstest der Tabelle die ID "running" geben und dürfest imho nicht append() nutzen, da in dem Fall <thead> nach <tbody> eingefügt wird - es muss aber davor kommen. In JavaScript gibt es auch insertBefore, es wird in jQuery sicher entsprechendes geben.
 
Ich habe in JQuery eine Lösung gefunden. Ich habe eine normale externe JS-Datei, in der mein JQuery-Code ist. Die Tabellen habe ich so gelassen und die div-Container haben normal ihre ID. In JQuery kann man über Selektoren auf Tags eines Containers über die ID zugreifen, also sowas wie

HTML:
$("#running tbody").append("<tr>...</tr>");

Ich hab außerdem den JQUERy-Code in eine document.ready Umgebung gepackt und nicht in jedem DIV-Block die FUnktion aufgerufen. Dadurch, wenn die Seite fertig gerendert ist, wird der JQuery Code ausgeführt, der von selbst die Tabellen in den Conainern füllt.
 
Ich hab es im folgenden HTML-Code probiert und es hat nicht geklappt:
Das ist keine hilfreiche Fehlerbeschreibung. Fehlermeldungen?
Wo finde ich die Fehlerkonsole?

Darüber hinaus ist aber das was du vor hast nicht sinnvoll und wird im IE nicht funktkionieren. Dort kannst du Tabellenelemente nicht per HTML hinzufügen. Du musst diese mit JS Methoden erzeugen.
https://developer.mozilla.org/en/DOM/HTMLTableElement
HTMLTableElement Prototype (TABLE)
 
Darüber hinaus ist aber das was du vor hast nicht sinnvoll und wird im IE nicht funktkionieren. Dort kannst du Tabellenelemente nicht per HTML hinzufügen. Du musst diese mit JS Methoden erzeugen.

Das mache ich doch auch. Bzw. hab es in meinem letzten Post gesagt, dass ich es mache. Ich habe eine externe JS-Datei, in der ich die HTML-Tags hinzufüge mittels JQuery.
 
Das mache ich doch auch. Bzw. hab es in meinem letzten Post gesagt, dass ich es mache. Ich habe eine externe JS-Datei, in der ich die HTML-Tags hinzufüge mittels JQuery.
Nein, macht du nicht. Die jquery Methoden fügen den HTML Inhalt ein und das geht im IE nicht. Die Links sollten dir die JS Methoden zeigen, mit denen es geht.
 
Zurück
Oben