Seite 1 von 1

document.getElementByClass(id).style.height ?

Verfasst: 14.01.2008 19:56
von phillip
Hallo ihr :wink:
Ja ich weiss, der Titel mag vielleicht nicht der Beste sein, aber das beschreibt eigentlich genau mein Problem ;-)

Vielleicht muss noch vorausgesagt werden, dass ich sozusagen eine absolute Null in Sachen Javascript bin, desshalb komm ich jetzt nicht mehr weiter ;-)

Los gehts!

Im head hab ich folgendes:

Code: Alles auswählen

<script type="text/javascript">

function versteck(id) {
        document.getElementById(id).style.display = 'none';
	
        }


function big(id) {
        document.getElementByClass(id).style.height = '300px';
        }
    
</script>

Im body:

Code: Alles auswählen

<span class="close"><a href="javascript:versteck('message'); big(gallery);">Close</a></span>
So.

Die function

Code: Alles auswählen

versteck
klappt soweit (ja, stolz bin ich schon :P), aber die function nicht wirklich...

Ich bin nicht einmal sicher, obs

Code: Alles auswählen

document.getElementByClass
überhaupt gibt xD

Ich möchte einfach ein

Code: Alles auswählen

ul class element
mit dem klicken auf close auf eine höhe von 300px bekommen.

Kann mir jemand helfen?

Verfasst: 14.01.2008 20:23
von PhilippK
getElementByClass() gibt es nicht - bzw. kann es nicht geben, da eine Klasse - im Gegensatz zu einer ID - nicht eindeutig ist und sowieso nicht zum Zugriff auf Elemente gedacht ist.
Als Alternative gibt es noch getElementsByName() - oder evtl. auch getElementsByTagName()

Ansonsten: http://forum.de.selfhtml.org/archiv/2005/11/t118461/

Viele Grüße,

Philipp

Verfasst: 14.01.2008 20:36
von phillip
ich habs jetzt so probiert:

Code: Alles auswählen

function big(id) {
        document.getElementsByName(id).style.height = '3000px';
        }
(3000px aus dem Grunde, dass man so einen richtig krassen Unterschied sieht ^^)

und der aufruf bleibt immer noch

Code: Alles auswählen

<span class="close"><a href="javascript:versteck('message'); big('gallery');">Close</a></span>


ich hab dem ul tag jetzt einfach einen Namen gegeben, bzw. 'gallery'

Das sieht jetzt so aus:
<ul class="gallery" name="gallery">
Kann man ul tags eigentlich mit einem Namen versehen?

leider passiert nichts...

EDIT: Mir ist sowieso grad eingefallen, names kann man nicht einfach den style ändern... :roll:

EDIT2: ok, habs hingekriegt mit

Code: Alles auswählen

function big() {
        document.getElementsByTagName("ul")[1].style.height = '3000px';
        }


DANKE PhilippK :wink:

Verfasst: 14.01.2008 21:01
von gn#36
Es gibt schon eine Möglichkeit, sämtliche Elemente einer Klasse anzusprechen:

http://snook.ca/archives/javascript/your_favourite_1/

Bei mir hat das jedenfalls einwandfrei funktioniert, kann bei vielen zu prüfenden Elementen allerdings schon mal was langsamer werden...
Das liefert jedenfalls ein Array zurück durch das du z.b. per

Code: Alles auswählen

for(var i=0, j=elements.length; i<j; i++)
		{
			elements[i].style.display = new_style;
		}
durchiterieren kannst (elements enthält die Rückgabe der Funktion.