mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Do 25.04.2024 06:18 Benutzername: Passwort: Auto-Login

Thema: Standardkonformes getElementsByName? vom 11.12.2006


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> Standardkonformes getElementsByName?
Autor Nachricht
beeviZ
Threadersteller

Dabei seit: 30.09.2002
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Mo 11.12.2006 18:35
Titel

Standardkonformes getElementsByName?

Antworten mit Zitat Zum Seitenanfang

Challo!

Ich suche ne Funktion die mir in ner Definitionsliste (kann meinetwegen auch ne ungeordnete Liste oder weiß der Geier was sein) immer jeweils von einem Punkt die definition description anzeigt, und bei allen anderen Listenpunkten die Beschreibungen schließt. Dat ganze sieht bisher irgendwie so aus:

Code:
<script type="text/javascript">
function kollabieren(id) {
   elemente = document.getElementsByName('vorschlag');
   for(i=0; i < elemente.length; i++) {
      document.getElementsByName('vorschlag')[i].style.display = 'none';
   }
   if(id != 'all') {
      document.getElementById(id).style.display = 'block';
   }
}

window.onload = function() {
   kollabieren('all');
}
</script>


Code:
<dl>
   <dt><a href="javascript:void(kollabieren('v1'));">Vorschlag 1</a></dt>
   <dd name="vorschlag" id="v1">Vorschlag 1 blablablabla blablablabla blablablabla blablablabla blablablabla blablablabla blablablabla </dd>
   
   <dt><a href="javascript:void(kollabieren('v2'));">Vorschlag 2</a></dt>
   <dd name="vorschlag" id="v2">Vorschlag 2 blablablabla blablablabla blablablabla blablablabla blablablabla blablablabla blablablabla blablablabla blablablabla blablablabla blablablabla </dd>
   
   <dt><a href="javascript:void(kollabieren('v3'));">Vorschlag 3</a></dt>
   <dd name="vorschlag" id="v3">Vorschlag 3 blablablabla blablablabla blablablabla blablablabla labla blablablabla labla blablablabla blablablabla blablablabla blablablabla </dd>
</dl>
<a href="javascript:void(kollabieren('all'));">Alle schließen</a>


und funktioniert auch alles ganz fein. is aber natürlich in xhtml nich valide, da das name attribut nich fürs dd element benutzt werden darf.

ne ID kann ich nich vergeben weil die einmalig is und ich ja schlecht sagen kann
document.getElementById(id) != 'foo'.style.display = 'none';

keine ahnung. bin auch jetzt nich sooo der JS Profi. Also irgendwer in dem Bereich n bisschen fitter wie ich und kann mich zu ner html validen lösung lenken?

wie funktioniertn das mit den nodes? ich müsste doch sagen können das ein klick auf den definition term die jeweilige definition description aus- und die anderen zuklappt, oder?
  View user's profile Private Nachricht senden
Zeithase

Dabei seit: 09.05.2005
Ort: Erfurt
Alter: 39
Geschlecht: Männlich
Verfasst Mo 11.12.2006 19:16
Titel

Antworten mit Zitat Zum Seitenanfang

Vielleicht mal mit getElementsByTagname herumspielen? *zwinker*
  View user's profile Private Nachricht senden
Anzeige
Anzeige
schachbrett

Dabei seit: 11.10.2006
Ort: Köln
Alter: -
Geschlecht: Männlich
Verfasst Mo 11.12.2006 19:34
Titel

Antworten mit Zitat Zum Seitenanfang

Weiss nicht, ob ich dein Problem verstanden hab -- aber schliessen kannst du die doch so:

Code:
document.getElementsById( 'v' + i ).style.display = 'none';


=>

Code:
<html>
<head>
<script type="text/javascript">
function kollabieren( id ) {
   for( var i = 1; i <= 3; i++ )
      document.getElementById( 'v' + i ).style.display = 'none';
   
   if( id != '' )
      document.getElementById( id ).style.display = 'block';
}
</script>
</head>

<body onload="kollabieren('')">
   <dl>
      <dt onclick="kollabieren('v1')">Vorschlag 1</dt>
      <dd id="v1">Vorschlag 1 blablablabla blablablabla</dd>     
      <dt onclick="kollabieren('v2')">Vorschlag 2</dt>
      <dd id="v2">Vorschlag 2 blablablabla blablablabla</dd>
      <dt onclick="kollabieren('v3')">Vorschlag 3</dt>
      <dd id="v3">Vorschlag 3 blablablabla blablablabla</dd>
   </dl>
</body>
</html>


Zuletzt bearbeitet von schachbrett am Mo 11.12.2006 22:00, insgesamt 3-mal bearbeitet
  View user's profile Private Nachricht senden
m
Moderator

Dabei seit: 18.11.2004
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Mo 11.12.2006 19:55
Titel

Antworten mit Zitat Zum Seitenanfang

Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>beeviz</title>
<script type="text/javascript">
<!--
kollabieren = function(id) {
   var elements = document.getElementById('deflist').getElementsByTagName('dd');
   for(var i = 0; i<elements.length; i++) {
      var dd = elements[i];   
      dd.style.display = 'none';
   }
    if(id != 'all') {
       document.getElementById(id).style.display = 'block';
    }
}
window.onload = function() {
   kollabieren('all');
}
-->
</script>
</head>

<body>
   <dl id="deflist">
      <dt onclick="kollabieren('v1')">Vorschlag 1</dt>
      <dd id="v1">Vorschlag 1 blablablabla blablablabla blablablabla blablablabla blablablabla</dd>      
      <dt onclick="kollabieren('v2')">Vorschlag 2</dt>
      <dd id="v2">Vorschlag 2 blablablabla blablablabla blablablabla blablablabla blablablabla</dd>
      <dt onclick="kollabieren('v3')">Vorschlag 3</dt>
      <dd id="v3">Vorschlag 3 blablablabla blablablabla blablablabla blablablabla lablablabla</dd>
   </dl>
</body>
</html>
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
beeviZ
Threadersteller

Dabei seit: 30.09.2002
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Mo 11.12.2006 23:28
Titel

Antworten mit Zitat Zum Seitenanfang

super! das hab ich gesucht. ich danke dir Lächel

äh, euch Lächel
  View user's profile Private Nachricht senden
 
Ähnliche Themen GetElementsByName - Anzahl gleichnamiger El.herausfinden
[Suche]Vorteile standardkonformes Webdesign
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.