Zur Navigation

Neue Tabellenzeile per Klick einfügen [4]

31 Jörg Kruse

Für die Tabellenzellen benötigst du keine ID - da ist die Reihenfolge ja feststehend, so dass du ausgehend von den Tabellenzeilen auf childNodes[0], childNodes[1] etc. zugreifen kannst, also z.B. auf die dritte Zelle in der Zeile mit der ID "tr123456789":

document.getElementById("tr123456789").childNodes[2]

Du musst der Funktion also die ID der Zeile und die Ordnungszahl der Zelle als Argumente übergeben, um auf die betreffende Zelle zugreifen zu können

23.08.2010 13:56 | geändert: 23.08.2010 13:57

32 Jerry02

okay...habs grad eben auch irgendwie hinbekommen aber ich probiers lieber nochmal so wie sie das meinen! das ist mir lieber ;)

23.08.2010 14:00

33 Jerry02

wie kommen Sie denn darauf, dass die dritte Zelle in der Zeile die ID"tr123456789" hat? bzw. wie bekommt man das denn heraus?

23.08.2010 14:18

34 Jörg Kruse

Das war nur ein Beispiel - du nimmst hier einfach auch die Variable timestamp

In Foren ist es übrigens üblich, sich zu duzen :)

23.08.2010 14:40

35 Jerry02

achso okay!
gut dann werd ich dich jetzt duzen :)
ich hab das jetzt so gemacht:
function Kursaendern (KZellenid)
	{
		var Kursaendern = prompt ("Geben Sie bitte den neuen Kurs ein.", "");
		var Kaendern = document.getElementById("td" + timestamp).childNodes[4];
		Kaendern.innerHTML = '<p id="Kurs1">' + Kursaendern + '</p><a href="javascript:Kursaendern(KZellenid)"></a>';
	}

aber irgendwie klappt es nicht! muss ich in der funktion Aendern () vielleicht noch etwas dazu eingeben?

23.08.2010 15:03

36 Jerry02

das ist falsch oder? :(

23.08.2010 15:10

37 Jörg Kruse

In dem Fall hast du die Nr. der Zelle (4) ja schon in der Funktion - du musst hier also nur noch die ID der Tabellenzeile an die Funktion übergeben

function Kursaendern (rowid)
	{
		var Kursaendern = prompt ("Geben Sie bitte den neuen Kurs ein.", "");
		var Kaendern = document.getElementById("tr" + rowid).childNodes[4];
		Kaendern.innerHTML = '<p id="Kurs1">' + Kursaendern + '</p><a href="javascript:Kursaendern(rowid)"></a>';
	}

in Aendern() erstellst du die Zelle mit dem Änderungslink ja zum ersten Mal - und da hast du die Zeilen-ID ja ganz am Anfang erzeugt und kannst sie hier auch übergeben

Edit: die ID der Zeile beginnt mit einem "tr", nicht mit einem "td"

23.08.2010 15:15 | geändert: 23.08.2010 15:20

38 Jerry02

es funktioniert!!!! das ist echt super! Vielen vielen Dank!
logischerweise wird nun der gesamtwert aus der funktion Aendern()
var Gesamtwert = Stueck*Kurs;

nicht aktualisiert, aber bevor ich dich wieder fragen muss, probier ich es wieder alleine!

23.08.2010 15:32

39 Jerry02

sorry ich muss dich schon wieder nerven! :(
also ich hab das jetzt mal an der funktion Kursaendern versucht, dass der Gesamtwert mit aktualisiert wird. ich schreibs erstmal hin:

function Kursaendern (rowid)
	{
		var Kursaendern = prompt ("Geben Sie bitte den neuen Kurs ein.", "");
		var Kaendern = document.getElementById("tr" + rowid).childNodes[4];
		Kaendern.innerHTML = '<p id="Kurs1">' + Kursaendern + '</p><a href="javascript:Kursaendern(rowid)"></a>';
		var Stueck = document.getElementById("tr" + rowid).childNodes[3].childNodes;
		var kGesamtwert = Kursaendern*Stueck;
		var KUGesamtwert = document.getElementById("tr" + rowid).childNodes[5];
		KUGesamtwert.innerHTML = '<p id="Gesamtwert1">' + kGesamtwert + '</p><a href="javascript:Kursaendern(rowid)"></a>';
	}

ich bin mir ziemlich sich, dass es an dieser Stelle hängt:

var kGesamtwert = Kursaendern*Stueck;

weil es den wert nicht auslesen kann! ich habe auch schon versucht die Zeile wegzulassen, weil ich dachte 'Stueck' ist ja eigendlich schon als Variable definiert, aber auch das hat nicht geklappt...:(

EDIT: in der Zelle Gesamtwert wird jetzt im Moment nur NaN angezeigt! ich glaub so wird das auch nichts

23.08.2010 16:02 | geändert: 23.08.2010 16:03

40 Jerry02

oder eine genauere Frage: Wie kann ich den Wert einer Zelle also in dem Fall der von der Anzahl auslesen und in einer Variable speichern?

23.08.2010 16:31