online 1
gast (50)

/ Forum / Skripte(PHP,ASP,Perl...)

Skripte(PHP,ASP,Perl...)Skripte(PHP,ASP,Perl...)

Fragevon Computerfreaki vom 13.09.2020, 10:42 Options

Lösung

Anzahl der Listenpunkte per JavaScript zählen

Hallo alle zusammen,
ich habe eine ungeordnete Liste in HTML die als Navigationsleiste dienen soll. Sie sieht folgendermaßen aus:

    <ul id="menulinks">
<li><a href="blablabla" class="current" name="menulink">Home</a></li>
<li><a href="blablabla" name="menulink">News</a></li>
<li><a href="blablabla" name="menulink">Über Mich</a></li>
<li><a href="blablabla" name="menulink">Links</a></li>
<li><a href="blablabla"  name="menulink">Bildergalerie</a></li>
<li><a href="blablabla" name="menulink">Videos</a></li>
<li><a href="blablabla" name="menulink">Livecam</a></li>
<li><a href="blablabla" name="menulink">Styleswitcher</a></li>
<li><a href="blablabla"  name="menulink">Rechner</a></li>
<li><a href="blablabla" name="menulink">Statistik</a></li>
<li><a href="blablabla" name="menulink">C H A T R O O M</a></li>
<li><a href="blablabla" name="menulink">Tagebuch (Blog)</a></li>
<li><a href="blablabla" name="menulink" >Kontakt</a></li>
    </ul>

Diese Liste ist mit CSS noch ein bisschen aufgepeppt.
Da ich ein Button einfügen will, mit dem man alle Links in der Menüleiste deaktivieren kann, brauch ich jetzt ne Möglichkeit die Anzahl der <li>-Tags zwischen <ul> und </ul> zu zählen,
Das ist meine bisherige Funktion:

<script type="text/javascript">
     function dragon() {
         var deakt = document.createAttribute('onclick');
         deakt.nodeValue = 'return false';  
     Sortable.create('menulinks');
     var linkanzahl = ???
  }
 </script>


Wenn ich die Anzahl dann ermittelt habe, sollen die Links in einer Schleife ein onclick-Attribut hinzugefügt bekommen:

for(i = 0; i < linkanzahl; i++) {
document.getElementsByName('menulink')[i].setAttributeNode('deakt')
}

Also ich bräuchte nur ne Möglichkeit die <li>-Tags zu zählen

Gruß Computerfreaki
a


Antwort schreiben

Antwort 1 von katy vom 13.09.2020, 12:40 Options

Hallo Computerfreaki,

alles viel zu kompliziert!

<script type="text/javascript">
function dragon() {
 var links=document.getElementById("menulinks").getElementsByTagName("li");
 for (var l=0; l< links.length; l++) {
  links[l].onclick = 'return false';
 }
}


die set/getAttribute-Methoden sind hier überflüssig. Außerdem versteht der IE die oftmals nicht.

katy

Antwort 2 von katy vom 13.09.2020, 13:04 OptionsLösung

Lösung
ohje, da hab ich etwas falsch aus deinem Script übernommen, dem onclick-Event muss natürlich eine Funktionsreferenz übergeben werden und nicht ein String. Richtig ist daher:

function dragon() {
 var links=document.getElementById("menulinks").getElementsByTagName("li");
 for (var l=0; l< links.length; l++) {
  links[l].onclick = function() {
   return false;
  };
 }
}


Sorry,

katy

Antwort 3 von Computerfreaki vom 13.09.2020, 13:09 Options

Vielen Vielen Dank katy, es funktioniert.

Hier zum Anschauen:
http://www.computerjan.de/neu

Einfach auf den MenueDrag-Button klicken. Dann sind die Links deaktiviert und sind verschiebbar. Andere Elemente sind auch verschiebbar

Antwort 4 von katy vom 13.09.2020, 13:12 Options

so 3ter Versuch, ich glaub ich habe erst jetzt die Intention deines Postings verstanden (es erscheint etwas wirr)

Du willst die Links <a> weghaben oder wenigstens funktionslos?

function dragon() {
var links=document.getElementById("menulinks").getElementsByTagName("a");
for (var l=0; l< links.length; l++) {
links[l].onclick = function() {
return false;
};
}
}

Dann sind natürlich nicht die <li> zu nehmen sondern die <a>.

Alternativ wäre:

function dragon() {
var links=document.getElementById("menulinks").getElementsByTagName("a");
for (var l=0; l< links.length; l++) {
links[l].href = "";
}
}

das Name="menulink" kannst du dann weglassen

katy

Antwort 5 von Computerfreaki vom 13.09.2020, 13:24 Options

Ja ich wollte die Links praktisch "entschärfen" wenn man die Menüpunkte verschieben kann. Weil es sonst nicht so angenehm ist.
Und ich bevorzuge lieber die onclick-Variante, weil ich das ganze ja mit einem anderen Button wieder rückgängig machen will.
Da kann ich mit removeAttribute das Onclick-Attribut wieder entfernen.

Oder gibt es da ne andere möglichkeit die LInks wieder zu aktivieren?

Antwort 6 von katy vom 13.09.2020, 13:41 Options

links[l].onclick=null;
reicht!

Antwort 7 von Computerfreaki vom 13.09.2020, 13:48 Options

Ok Danke für deine Hilfe :-)

Gruß Computerfreaki

Ähnliche Themen

JavaScript aktivieren
Mickey  06.05.2008 - 2170 Hits -

Zeilen zählen
morpheus__85  28.06.2007 - 56 Hits - 1 Antwort

aktivierte ToggleButton zählen
Larrikin  02.07.2007 - 41 Hits - 2 Antworten

MySQL sortieren und zählen
AlexandraZartl  10.09.2007 - 32 Hits - 3 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026