URL: https://www.overclockers.at/coding-stuff/lttdgt_ausblenden_mit_js_148837/page_1 - zur Vollversion wechseln!
ich hab eine seite auf welcher der content dynamisch erstellt wird. es werden einzelne entries formatiert ausgegeben, jeder entry mit zugehöriger statistik wird in einem eigenen table ausgegeben. die statistik befindet sich jeweils in einem eigenen <td> und dieses möchte ich per JS ausblenden, das geht mal folgendermaßen:
wobei 'name' als id=name im <td> festgelegt ist. soweit so gut, jetz hab ich halt an haufen <td>s den ich ausblenden will und wenn ich jedem die selbe id geb dann geht schon mal gar nix. jetz create ich halt über php fortlaufende ids (stats0, stats1, stats2,...) und hab mir gedacht ich verarbeite das ganze mit einer for-schleife ($num_rows ist die anzahl der einträge) =>Code:<script language="javascript"> function toggle(name) { visibility = (name.style.display == 'none') ? '' : 'none'; name.style.display = visibility; } </script>
die zeile var visi = stats + i; macht aber probleme, der syntax müsste eigentlich passen aber es geht trotzdem was ned und wenn ich 'stats' + i; dann passt zwar der inhalt der variable, is aber für den zugriff auf das element anscheinend unbrauchbar.Code:<script language="javascript"> function toggle(name) { for(i=0;i<={$num_rows};i++) { var visi = stats + i; visibility = (visi.style.display == 'none') ? '' : 'none'; visi.style.display = visibility; } } </script>
du willst das:
var id = 'stats' + i
document.getElementById(id).style....
ich hab jetz
Code:<script language=\"javascript\"> function togglevis() { for(i=0;i<={$num_rows};i++) { var visi = 'stats' + i; visibility = (document.getElementByID('visi').style.display == 'none') ? '' : 'none'; document.getElementByID('visi').style.display = visibility; } } </script>
Du willst doch nicht das Element mit der id "visi" bekommen, sondern das mit der id, die in der variable "visi" gespeichert ist. Der Aufruf muss also
document.getElementByID(visi)
lauten.
greetz cduke
ahm... ich hab kein Schimmer was du da anstellen willst mit der ?: abfrage... wenns "none" is, machst du ein "" daraus und sonst ein "none" ? Das is sehr konfus in meinen Augen. Willst du die Anzeige jetzt "Togglen" (deine Funktion heisst zumindest so) oder wirklich nur alles ausblenden?
ein anderer Punkt, es heisst "getElementById" und NICHT "getElementByID" javascript is case-sensitive, und deswegen kann das nicht gehen.
du definierst innerhalb der Schleife jedes Mal die Variable "visi" neu das macht man nicht.
² duke
hab ich ja auch probiert, geht ja nicht.
prinzipiell funktionierts mit den werten ja so, wenns auf "" steht dann ist es sichtbar bzw. wird vom browser mit dem defaultwert interpretiert, wenns auf "none" is ises nicht sichtbar.Zitat von watchoutahm... ich hab kein Schimmer was du da anstellen willst mit der ?: abfrage... wenns "none" is, machst du ein "" daraus und sonst ein "none" ? Das is sehr konfus in meinen Augen. Willst du die Anzeige jetzt "Togglen" (deine Funktion heisst zumindest so) oder wirklich nur alles ausblenden?
ein anderer Punkt, es heisst "getElementById" und NICHT "getElementByID" javascript is case-sensitive, und deswegen kann das nicht gehen.
du definierst innerhalb der Schleife jedes Mal die Variable "visi" neu das macht man nicht.
Code:<script language=\"javascript\"> var visi = 0; function togglevis() { for(i=0;i<={$num_rows};i++) { visi = 'stats' + i; visibility = (document.getElementById(visi).style.display == 'none') ? '' : 'none'; document.getElementById(visi).style.display = visibility; } } </script>
Zitat von watchoutdu definierst innerhalb der Schleife jedes Mal die Variable "visi" neu das macht man nicht.
Ahm, für eine solche Schleife machst du lieberZitat von thatdoch, das macht man, wenn man die Variable nur innerhalb braucht.
Zitat von watchoutAhm, für eine solche Schleife machst du lieber
allocate, set, free, allocate, set, free.... , free
statt
allocate, set, set, ...., free
?
Zitat von watchoutIch meinte eigentlich dass man das auch gleich an den 2 stellen (von denen man eigentlich eh nur eine braucht...) das "visi"+i gleich direkt in den function-call hätte reinschreiben können.
wie hätt ich das in den function call reinschreiben sollen bzw. was hätts für einen sinn gehabt? wär im code halt bissi weiter oben gstanden...Zitat von watchoutIch meinte eigentlich dass man das auch gleich an den 2 stellen (von denen man eigentlich eh nur eine braucht...) das "visi"+i gleich direkt in den function-call hätte reinschreiben können. Zumindest denke ich dass ich das gmeint habe, weil das mir jetzt so auffällt...
argl ich pfeiff auf JS ich geh wieder zu meinem sicken LUA
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025