getElementsByName macht nicht was es soll

fager

Grünschnabel
hi,

ich versuche, verschiedene elemente einer site gezielt auszublenden, das funktioniert aber nicht so wie es soll;
es sollte doch eigentlich so funktionieren:
Code:
-------------------------------------------------------------------------------------------------------
<html>
<head>
<script type="text/javascript">
function anzeigen(eintrag) {
for(var i=0; i < document.getElementsByTagName("div").length; i++) {
document.getElementsByName("kategorie1")[i].style.display = "none";
document.getElementsByName("kategorie2")[i].style.display = "none";
document.getElementsByName(eintrag)[i].style.display = "inline";
}
}
</script>
</head>
<body>
<a href="#" onclick="anzeigen('kategorie1');">kategorie1</a>
<a href="#" onclick="anzeigen('kategorie2');">kategorie2</a>
<div name="kategorie1">link1</div>
<div name="kategorie1">link2</div>
<div name="kategorie2">link3</div>
<div name="kategorie2">link4</div>
</body>
</html>
---------------------------------------------------------------------------------------------------------

warum funktioniert das ganze nicht und was muß ich ändern?

danke
 
Nun ja...."name" ist kein Universalattribut.... es gibt dieses Attribut in <div>'s nicht..... ein guter Browser sollte es daher ignorieren.
 
ok, und wie löse ich dann mein problem?

btw:
firefox macht was ich "will" - aber mit fehlermeldung
ie und opera machen nichts
 
Sorry hab einen Dreck (wieso wird eigentlich S-c-h-e-i-ß zensiert* ) geschrieben, weil ich deine for-Anweisung übersehen hab.
Würde den Post gerne löschen. Warum kann man eigentlich seine eigenen Posts nicht löschen?

Egal, versuch's doch mal mit document.getElementsById().style.visibility. Und änder dann das "name='kathegorie1'" in "id='kathegorie1'".

* Anmerkung zu Oben: Wir sind doch nicht in Amerika und ich für meinen Teil hänge schon an meiner freien Meinungsäußerung. D
er einzige Grund warum man etwas zensieren sollte ist, weil es jemand anderen verletzt, nur ist das in der Mehrzahl der Fälle einfach nicht so (siehe den Fall von oben) und jeder Mensch sollte doch so reif sein, dass er Kraftausdrücke die ihn beleidigen an sich abprallen lässt. Außerdem ist das generelle, softwaremäßige zensieren quasi ein Präventivkrieg und wir wollen doch nicht mit Bush auf eine Ebene. Ganz neben bei gibt es immer Möglichkeiten sowas zu umgehen (siehe oben...:-) )
 
Zuletzt bearbeitet:
Hallo fager,

versuch es mal über den Klassennamen:
HTML:
  <html>
  <head>
  <style type="text/css">
  <!--
  .kategorie1, .kategorie2 {
  	display: none;
  }
  -->
  </style>
  <script type="text/javascript">
  <!--
  function anzeigen(eintrag)
  {
    var divObj = document.getElementsByTagName("div");
    for(var i=0; i < divObj.length; i++)
    {
  	if (divObj[i].className == eintrag)
  	  divObj[i].style.display = "inline"
  	else
  	  divObj[i].style.display = "none";
    };
  }
  //-->
  </script>
  </head>
  <body>
  <a href="#" onclick="anzeigen('kategorie1');">kategorie1</a>
  <a href="#" onclick="anzeigen('kategorie2');">kategorie2</a>
  <div class="kategorie1">link1</div>
  <div class="kategorie1">link2</div>
  <div class="kategorie2">link3</div>
  <div class="kategorie2">link4</div>
  </body>
  </html>
 
@con-f-use:

getelementbyid funktioniert nicht, so hatte ich es zuerst, aber dann wird immer nur der erste eintrag der die entsprechende id hat beachtet; eigentlich logsich weil eine id ja schon (ein)eindeutig sein sollte.

@hela:
perfekt, danke. :p
so funktioniert es. das so zu machen kam mir nicht in den sinn :confused:
 
Zuletzt bearbeitet:
Wofür brauchst du überhaupt die for-Schleife. Ich mein ich kanns mir schon denken, aber es geht aus dem Code nicht wirklich hervor und daher kann man's auch nicht direkt testen, wenn man deinen Code von oben hernimmt...
 
@confuse

...jawoll, wir sind hier nicht in Amerika, daher wollen wir doch auch nicht, dass jedes 2te Wort mit F beginnt, oder.

Seh es mal so.... für ein Board wie tutorials.de sind eine Reihe an Wörtern zum Betrieb nicht erforderlich,.... bei jedem Kiddie-Board würden bei solchen Zensur-Massnahmen die User wohl scharenweise weglaufen, hier ist diese Zensur eher ein Garant dafür, dass sie scharenweise kommen und eine gewisse Qualität geboten wird.
 
:offtopic:Ich versteht das ja auch durchaus, es stört mich eben nur, wenn ich nicht das sagen kann was ich will. Es geht mir einfach um's Prinzip.
Komm halt aus dem Bayrischen und wir pflegen einen etwas lockeren Ton im Bezug auf Schimpfwörter ohne dass wir damit beleidigen wollen. Das "Grantln" is halt Teil der Kultur. Solche Zensurmaßnahmen schränken da meine Persönlickeitsenfaltung, wie's in unserer Verfassung so schön heißt ein.
In Amerika ist wirklich fuck zu sowas wie nem Satzzeichen, zu Komma und Punkt geworden, aber das ist doch auch nicht soooo schlimm, weil's auch niemanden angreift. Wenn sie's so machen wollen, wer sind wir oder, wie ich meinte ihre eigenen Medien, dass wir bzw. ihre Medien ihnen unsere prüden Vorstellungen aufzwigen wollen? Es ist einfach ein kleines Bisschen Dikatur, was hier abgeht, es stört wenige, wir gewöhnen uns dran, dann kommt das nächste was keinen Stört, wir gewöhnen uns wieder dran und schwupps haben wir nen neuen Faschistoiden an der Macht.:offtopic:

Vorschlag an die Admins: Machen wir doch ne Zensurabstimmung, dann haben wir wenigstens eine Demokratur :)
 
Zuletzt bearbeitet:
Ich glaube kaum, dass es eine Abstimmung geben wird, damit du deine Lieblings-Wörter benutzen kannst.

Es ist einfach ein kleines Bisschen Dikatur, was hier abgeht, es stört wenige, wir gewöhnen uns dran, dann kommt das nächste was keinen Stört, wir gewöhnen uns wieder dran und schwupps haben wir nen neuen Faschistoiden an der Macht

Jawoll...tutorials.de ist Teil eines "Unternehmens", wie du im Impressum nachlesen kannst, und solche tragen idR. selten die Merkmale einer Demokratie.
Es besitzt aber ein entscheidendes Merkmal, welches es von einer Diktatur unterscheidet.... man hat die Wahl, sich der Sache zu unterwerfen....du hast mit deiner Registrierung deine Wahl getroffen.
 

Neue Beiträge

Zurück