• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

nächstes Element wählen

Conkuist

Mitglied
Hallo

Habe eine liste und möchte mit folgendem code ein element der liste suchen und
dann das darauf folgende element auswählen

Leider klappt das ganze nur einmal und dann funktioniert das ganze überhaupt nicht mehr.
Ich möchte aber durch die ganze liste blättern können
Weiß jemand was ich falsch gemacht habe?
Kann mir das ganze nicht so ganz erkären.

Hier mein Code

Code:
for (i = 0; i < s.length; i++)
if(s.getAttribute("atributa")==atributa&&s.getAttribute("atributa")==atributa)
{x=i+1;v.src=s[x].getAttribute('atributa')+s[x].getAttribute('atributb')+".mp4";}
 
Zuletzt bearbeitet:
Werbung:
Du musst code in code-Tags einschließen. So hat die Forensoftware das
Code:
[i]
als Italic-Tag interpretiert und verschluckt.
Sind die beiden Vergleich im if nicht identisch?
Wenn das letzte Element gefunden wird, gibt es kein nächstes; v.src ist dann wahrscheinlich undefined.
Komfortabler kann man das nächste Element mit der jQuery-Funktion next() ermitteln.
Sonst kann ich keinen Fehler erkennen. Wie wird denn die Variable atrituta vorbesetzt?
 
Ich hänge an die adresszeile ?attributa&attributb an und lese diese dann aus

Code:
werte=window.location.search.slice(1).split("&")
attributa=werte[0]
attributb=werte[1]

Zum schluss vergleiche ich die Werte mit den atributen in meiner liste

Es scheint irgendnwie so zu sein das sich i nicht ändern lässt
Denn den wenn ich bei zweiten mal auf Nächstets Video klicke läd er wieder das selber video wie beim ersten mal
allerdings sollte er nicht vom ursprünglich ersten video das nächste laden sondern vom nun aktuellen video.
 
Werbung:
Was soll das eigentlich werden, eine Playlist?

Gehe mal gedanklich zwei Schritte zurück.

Du hast eine Collection von Titeln. Woher werden die Titel bezogen? Ist es tatsächlich notwendig über das DOM zu traversieren? Wie ermittelst du das aktuelle Element? Wozu benötigst du URL Parameter?
 
Verstehe noch nicht ganz, was Du da vor hast und wie Du es realisieren willst.
bei zweiten mal auf Nächstets Video klicke
Worauf klickst Du da? Gibt es einen Button? Wie verarbeitest Du den Klick?
 
Gut dann fangen wir eben bei null an
Wie würdet ihr eine Playlist realisieren
Über Arrays ?
Problem dabei ist eben das ich eine liste mit li elementen und attributen berreits angelegt habe
Und diese als basis verwenden möchte

Und ja mit Nächstes video meine ich einen Button
der die funktion die leider nicht richtig funktioniert auslösen soll

den URL habe ich benutz um beim aktualisieren der seite
das aktuelle video zu speichern und wieder zu laden
 
Zuletzt bearbeitet:
Werbung:
Wie würdet ihr eine Playlist realisieren
Über Arrays ?

Jupp, darauf wollte ich hinaus. Eine Collection einzelner Elemente speichert man in einem Array. Um die Elemente dort rein zu bekommen, könntest du sie als String direkt reinschreiben, aus einer Datenbank übernehmen oder notfalls auch über das DOM traversieren und die src-Attribute sammeln. Arrays lassen sich mittels push(), pop(), shift() und unshift() beliebig sortieren. Damit könnte man z.B. Endlos Playlists generieren.

Stehen die Elemente erstmal drin, dann ist das jeweils nächste Element, auf das du dich beziehst, das erste aus dem Array und nicht irgend etwas drei Blöcke tiefer in deinem Markup.
 
Code:
Wie würdet ihr eine Playlist realisieren
Ich habe ein paar Seiten mit Playlist und ich habe sie mit PHP realisiert. Die Parameter der Videos in einem Array abgelegt. Einen URL-Parameter als Index, über den dann das Video ausgewählt und abgespielt wird. Der URL-Parameter hat den Vorteil, dass man ein bestimmtes Video als Lesezeichen setzen und die URL genau dieses Videos verschicken kann.
Es gibt aber auch fertige Player mit Playlist.
 
Das mit dem URL ist dann wohl ein positiver nebenefekt daran hab ich noch gar nicht gedacht.
Ich habe schon mal mit php Daten aus einer mysql Datenbank in eine Tabelle ausgegeben
und mit arrays habe ich mich auch schon mal befasst

alllerdings möchte ich vorerst auf PHP verzichten
und über das sortieren mit Javascript weiß ich leider nicht sehr viel.

Bin immer auf das Problem gestoßen das ich Multidimensionale Arrays nicht nach den arrays in den arrays sortieren konnte.

Kennt ihr vielleicht eine seite die das sortieren von arrays mit javascript erklärt.

EDIT:
Und einem fertigen Player möchte auch ich nicht verwenden
das wäre doch viel zu einfach und lernen tut man da ja auch nicht sonderlich viel dabei :D
 
Werbung:
Hallo habe hier mal ein Beispiel erstellt
Ich verstehe das mit dem Callback immer noch nicht so wirklich
Wie kann ich eine Spalte sortieren wenn ich auf die Spaltenüberschrift klicke?

Habe auch ein JSFiddle ertellt
den ihr ergänzen könnt
Hier der Link zu JSFiddle

Code:
<style>

body
{margin:10px;cursor:default;
-moz-user-select:none;
-ms-user-select:none;
-webkit-user-select:none;}

table{width:500px;}
.block,th
{background:#ccc;
line-height:30px;
height:30px;
padding-left:5px;
font-family:century gothic,arial;
font-weight:bold;
color:#fff;}

th{padding:0px;}

</style>

Code:
<div id="demo"></div>

Code:
document.getElementById("demo");
<script>

var video = new Array();
video[0] = new Array("werta1","wertb2","wertc3");
video[1] = new Array("werta3","wertb5","wertc5");
video[2] = new Array("werta5","wertb4","wertc2");
video[3] = new Array("werta4","wertb1","wertc1");
video[4] = new Array("werta2","wertb3","wertc4");

newtable=document.createElement("table")
document.getElementById("demo").appendChild(newtable)

newtr=document.createElement("tr")
newtable.appendChild(newtr)

newth=document.createElement("th")
newtr.appendChild(newth)
newth.innerHTML="werta"
newth.id="werta";

newth=document.createElement("th")
newtr.appendChild(newth)
newth.innerHTML="wertb"
newth.id="wertb";

newth=document.createElement("th")
newtr.appendChild(newth)
newth.innerHTML="wertc"
newth.id="wertc";

x=1;
sortma=function(a, b) {  return a[x] > b[x]; };
video.sort(sortma)

for (i = 0; i < video.length; i++)
{newtr=document.createElement("tr")
newtable.appendChild(newtr)

newtd=document.createElement("td")
newtr.appendChild(newtd)
newtd.innerHTML=video[i][0]
newtd.classList.add("block")

newtd=document.createElement("td")
newtr.appendChild(newtd)
newtd.innerHTML=video[i][1]
newtd.classList.add("block")

newtd=document.createElement("td")
newtr.appendChild(newtd)
newtd.innerHTML=video[i][2]
newtd.classList.add("block")}

</script>
 
Wie kann ich eine Spalte sortieren wenn ich auf die Spaltenüberschrift klicke?
Ich verstehe schon, wenn Du etwas lernen möchtest und es deshalb selber programmieren willst, aber bei diesem Problem lohnt sich das wirklich nicht, weil es dafür super Plugins gibt, z. B. dieses:
http://tablesorter.com/docs/

Ich verstehe das mit dem Callback immer noch nicht so wirklich
Code:
sortma=function(a, b) {  return a[x] > b[x]; };
Du musst alle drei Möglichkeiten berücksichtigen, a > b, a < b und a = b. Nur wenn a und b vom Typ Number sind, kann man es durch eine Subtraktion vereinfachen.
Sieh dir das erweiterte Beispiel bei developer.mozilla.org noch mal an.
 
Werbung:
Zurück
Oben