Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] javascript: alle id's abfragen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] javascript: alle id's abfragen

    hallo genossen der programmierkunst,

    habe folgende frage:
    wie kann man alle id's von tabellen abfragen, mit ausnahme der id, die ich in einem moment abfrage? klingt bestimmt komisch, kann es aber auch nicht besser beschreiben.

    am besten schaust du dir erstmal das mein script an, und was ich damit vorhabe...

    meine funktion zum aus- bzw. einblenden bei einem click auf tabellen-button:
    Code:
    function clickklapp(id)
    {
     
     if(document.getElementById(id).style.display == 'none')
     {
      document.getElementById(id).style.display = 'block';
     }
     else
     {
      document.getElementById(id).style.display = 'none';
     }
    }

    und so wird sie ausgeführt:

    Code:
    zeigen/nichtzeigen
    
    <table width="130" border="0" align="right" cellpadding="0" cellspacing="4" id="points" style="display:none;">
            <tr>
              <td align="right">point one</td>
            </tr>
            <tr>
              <td align="right">point two</td>
            </tr>
    </table>
    wenn ich nun auf "zeigen/nichtzeigen" klicke wird die tabelle angezeigt, bzw versteckt.

    » wenn ich nun aber mehrere "zeigen/nichtzeigen"-buttons und tabellen habe komme ich auf mein problem: es soll immer nur eine tabelle gezeigt werden, die anderen sollen automatisch versteckt werden (display:none).

    bsp wie es ausehen sollte:

    topic 1 (id = 1)
    » point one
    » point two

    topic 2 (id = 2)
    » point one
    » point two

    topic 3 (id = 3)
    » point one
    » point two

    klicke ich nun auf "topic 2" so soll von "topic 1" und "topic 3" die unterpunkte (points) ausgeblendet werden!

    ich müsste also alle id's auf display:none stellen die nicht die aktuelle id (getElementById...) haben.

    aber wie kann ich das machen?

    Code:
    function clickklapp_neu(id)
    {
     
     if(document.getElementById(id).style.display == 'none')
     {
      document.getElementById(id).style.display = 'block';
    
      //alle anderen sollen display none bekommen:
         document.alleAnderen.style.display = 'none';
      //wie komme ich auf "alleanderen"?
     }
     else
     {
      document.getElementById(id).style.display = 'none';
     }
    }
    please help

    ich danke jeden für denkanstöße.
    mfg embee


  • #2
    Ähm. Den ID des ausgeklappten in einer eigenen JavaScript-Variable speichern, und den dann jeweils einklappen?

    Aber du scheinst ja unbedingt _alle_ anderen anfassen zu wollen ist zwar unnötig, aber bitte:

    1. Erst alle einklappen, dann das eine wieder ausklappen
    2.
    Code:
    for(i=1; i<4; i++)
    {
    if(i != id) document.getElementById(id).style.display = 'none'
    else document.getElementById(id).style.display = "block";
    }
    bluebird

    Kommentar


    • #3
      hallo.
      als ich gestern aus dem internet raus bin hatte ich diese idee auch.
      habs dann so umgesetzt:

      Code:
      function marie(id)
      {
      	for (i=1;i<=8;i++)
      	{
      		if(i == id)
      		{
      			//wenn die id = i
      			if(document.getElementById(i).style.display = 'none')
      			{
      				document.getElementById(i).style.display = 'block';
      			}
      			else
      			{
      				document.getElementById(i).style.display = 'none';
      			}	
      		}
      		else
      		{
      			//wenn die id != i -> alle i's werden auf none gestellt
      			document.getElementById(i).style.display = 'none';
      		}
      	}
      }
      und jetzt guck ich nochmal rein... und da steht eigendlich das selbe. da hätte ich mir ja auch nicht den kopf zerbrechen müssen.

      danke

      mfg embee

      Kommentar

      Lädt...
      X