tach Community,
ich habe eine ziemliche schweinerei vor 
und zwar… nachtraeglich mit ID=1 versehen.
Ich habe eine gegebene Tabelle mit „n“ tr’s und td’s
Diese ist definitiv gegeben und kann nicht veraendert werden.
nun moechte ich via javascript folgendes tun:
- in jede TD (getElementsbyTagName(‚td‘)[n].innerHTML) einen href packen,
der eine TD - id an eine funktion uebergibt.
daraus folgt mein eigentliches problem:
- jede td muss nachtraeglich mit einer eindeutigen id versehen
werden. Wie mache ich das ???
ich kann zwar mit getElementById(id) auf elemente zugreifen… aber wie schreibe ich die genau in eine ??
sowas wie
document.write(getElementsByTagName("td")[n]) = 'id=3';
Aber das ist ja non-sense…
geht das ueberhaupt ?
wenn ja… wiiiiieeeeee ?
merci für die ideen.
gruss
PixelKoenig
daraus folgt mein eigentliches problem:
- jede td muss nachtraeglich mit einer eindeutigen id versehen
werden. Wie mache ich das ???
ich kann zwar mit getElementById(id) auf elemente zugreifen…
aber wie schreibe ich die genau in eine ??
sowas wie
document.write(getElementsByTagName(„td“)[n]) = ‚id=3‘;
mal nen test
function idsetzen(setid) {
document.getElementsByTagName(„td“)[setid].id=„T“+setid;
}
function idzeigen(showid) {
var thisid=document.getElementsByTagName(„td“)[showid].id;
alert(thisid);
}
function idshow(showid) {
if (document.getElementById(showid)) {
var thisid=document.getElementById(showid).innerHTML;
}
alert(thisid);
}
[set ID T0 td[0]](javascript:idsetzen(‚0‘)) / [show ID td[0]](javascript:idzeigen(‚0‘))
[set ID T1 td[1]](javascript:idsetzen(‚1‘)) / [show ID td[1]](javascript:idzeigen(‚1‘))
[set ID T2 td[2]](javascript:idsetzen(‚2‘)) / [show ID td[2]](javascript:idzeigen(‚2‘))
[innerHTML by ID T0 if set](javascript:idshow(‚T0‘))
[innerHTML by ID T1 if set](javascript:idshow(‚T1‘))
[innerHTML by ID T2 if set](javascript:idshow(‚T2‘))
it Works — 
tachchen…
mal nen test
document.getElementsByTagName(„td“)[setid].id=„T“+setid;
wo hast du denn diese herrliche schweinerei gefunden ?
und in der tat… es funktionuckelt…
zumindest in FF 3.03 und IE6
ich bin begeistert.
danke
gruss
PixelKoenig
Hallo Pixelkönig,
wo hast du denn diese herrliche schweinerei gefunden ?
und in der tat… es funktionuckelt…
zumindest in FF 3.03 und IE6
Dass es auch im Firefox funktioniert, ist eher enttäuschend, denn von dem ist man eher gewöhnt, dass er gnadenlos validen Code einfordert. Dafür wurde er ja schließlich u.A. entwickelt.
Eine mit einer Ziffer beginnende ID ist nicht valide und deshalb sollte Firefox sich auch weigern, eine solche überhaupt zu beachten.
Wenn den Mozilla-Entwicklern dieser Bug bekannt wird, werden sie ihn bestimmt alsbald beheben. Deshalb: Setz einfach noch ein oder zwei Buchstaben vorne in den der ID zugewiesenen Wert (z.B.: id = „id1“). Mit einer solchen ID bist du sicher, dass es auch zukünftig funktioniert.
Gruß Gernot
Eine mit einer Ziffer beginnende ID ist
nicht valide und deshalb sollte Firefox
sich auch weigern, eine solche überhaupt zu beachten.
na… da haste glaub ich nicht genau hingeschaut…
id="T"+setid;
da ist doch ein „T“ als prefix 
grusz
PixelKoenig
Hallo Pixelkönig,
na… da haste glaub ich nicht genau hingeschaut…
id=„T“+setid;
da ist doch ein „T“ als prefix 
Stimmt, da habe ich nicht genau hingeschaut, allerdings ist mir immer noch nicht klar, wofür du überhaupt eine ID benötigst. Warum hängst du in das in die Tabellenzelle nachträglich hineingenerierte A-Element (oder in die Tabellenzelle selbst) nicht einfach ein onclick-Event, das bezogen auf sich selbst (this) bzw. sein Elternelement (this.parentNode) eine Aktion auslöst. Wofür braucht es da eine ID?
Gruß Gernot
Hi Gernot,
weil mein Realer Auftrag ein wenig komplexer ist ,
als meine Anfrage hier bei W-W-W.
Hintergrund…
ich bekomme eine tabelle…
ohne jegliche IDs.
unter der Tabelle sind weitere bereits ausgeblendete tabellen.
diese ausgeblendeten tabellen haben je einen bezug
zu jeden TR der ersten tabelle.
bei klick auf eine beliebige TD innerhalb einer TR
soll die dazugehoerige tabelle in einem div eingeblendet werden.
das problem dabei … die DIVs existieren auch noch nicht.
ich muss alles drum rumschreiben…mit javascript.
haesslich… aber geht nicht anders.
sinmples beispiel:
Ausgangstabelle:
wert 1 Row1
wert 2 Row1
wert 3 Row1
wert 1 Row2
wert 2 Row2
wert 3 Row2
Details zu Row 1Details zu Row 2 Ziel wie es nachher aussehen soll:
wert 1 Row1
wert 2 Row1
wert 3 Row1
wert 1 Row2
wert 2 Row2
wert 3 Row2
Details zu Row 1
Details zu Row 2
Hallo Pixelkönig,
das sollte ja bei gegebener Struktur auch ohne nachträglich eingefügte DIVs und IDs kein Problem sein:
Tabellenzeilendetails einblenden ohne zusätzliche DIVs
//<![CDATA[
var myTables;
window.onload = function () {
myTables = document.getElementsByTagName(‚TABLE‘);
for ( i = 1; i < myTables.length ; i++ ) {
myTables[i].style.display = ‚none‘;
}
var myClickTRs = myTables[0].rows;
for ( i = 0; i < myClickTRs.length ; i++ ) {
myClickTRs[i].idx = i+1;
myClickTRs[i].onclick = function () {
with(myTables[this.idx].style) {
display = ( display == ‚none‘ ) ? ‚‘ : ‚none‘;
}
}
}
}
// ]]>
wert 1 Row1
wert 2 Row1
wert 3 Row1
wert 1 Row2
wert 2 Row2
wert 3 Row2
Details zu Row 1Details zu Row 2
Gruß Gernot