zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Javascript & Ajax
Seite neu laden jQuery bestimmte Elemente aus Liste auswählen

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 11.02.2014, 19:20
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 05.05.2013
Beiträge: 37
CaptainGerrard befindet sich auf einem aufstrebenden Ast
Standard jQuery bestimmte Elemente aus Liste auswählen

Hi,

ich suche eine performante Lösung um die rot dargestellten Elemente aus einer Liste auszuwählen.

Code:
<ul>
<li class="foo">...</li>
<li class="bar">...</li>
<li class="bar">...</li>
<li class="bar">...</li>
<li></li>
<li class="foo">...</li>
<li class="bar">...</li>
<li></li>
<li class="foo">...</li>
<li class="bar">...</li>
<li class="bar">...</li>
<li class="bar">...</li>
<li class="bar">...</li>
<li class="bar">...</li>
</ul>
Ausgangspunkt wäre immer die Klasse .foo, davon suche ich immer das letzte Element bevor ein Element mit einer anderen (oder gar keinen) Klasse folgt
(das letzte Element besitzt immer die Klasse .bar).
/edit: das gesuchte Element kann auch das letzte in der Liste sein, desweiteren ist die Position des Elements unbekannt.

Meine mir einzig bekannte Lösung wäre alle Elemente durchzugehen und zu prüfen was folgt, wobei nicht wirklich toll wie ich finde.

Danke für eure Hilfe

Geändert von CaptainGerrard (11.02.2014 um 19:24 Uhr)
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 11.02.2014, 21:15
?!?
XHTMLforum-Kenner
 
Registriert seit: 20.03.2013
Beiträge: 1.638
explanator sorgt für eine eindrucksvolle Atmosphäreexplanator sorgt für eine eindrucksvolle Atmosphäre
Standard

Zitat:
Zitat von CaptainGerrard Beitrag anzeigen
Meine mir einzig bekannte Lösung wäre alle Elemente durchzugehen und zu prüfen was folgt, wobei nicht wirklich toll wie ich finde.
Wie soll es denn sonst gehen?
__________________
"Wieso ist der Code schrott, ich dachte hier seien Profis..."
Aus einem Forum.
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 11.02.2014, 21:24
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 05.05.2013
Beiträge: 37
CaptainGerrard befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von explanator Beitrag anzeigen
Wie soll es denn sonst gehen?
ich hätte die Frage nicht gestellt wenn ich dir deine jetzt beantworten könnte.

Ich lege viel Wert auf Performance, solche Listen können durchaus relativ lange werden (in meinem Anwendungsfall), dadurch wollte ich den Schleifendurchlauf möglichst vermeiden.
Mit Zitat antworten
  #4 (permalink)  
Alt 12.02.2014, 01:22
?!?
XHTMLforum-Kenner
 
Registriert seit: 20.03.2013
Beiträge: 1.638
explanator sorgt für eine eindrucksvolle Atmosphäreexplanator sorgt für eine eindrucksvolle Atmosphäre
Standard

Ich sehe hier leider keine andere Möglichkeit, aber vielleicht kennt ja jemand anderes einen Trick, gerade in Hinblick auf Performance.
__________________
"Wieso ist der Code schrott, ich dachte hier seien Profis..."
Aus einem Forum.
Mit Zitat antworten
  #5 (permalink)  
Alt 12.02.2014, 11:11
Benutzerbild von inta
free as in freedom
XHTMLforum-Kenner
 
Registriert seit: 04.12.2006
Ort: Berlin
Beiträge: 5.016
inta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz sein
Standard

Wenn du das nicht über die Selectorengine (bei jQuery Sizzle) abbilden kannst (ich sehe dazu auf den ersten Blick keine Möglichkeit), dann verzichte auf jeden Fall auf die langsamen each-Funktionen von jQuery und nimm statt dessen eine normale for- oder while-Schleife, die sind deutlich schneller.
Mit Zitat antworten
  #6 (permalink)  
Alt 12.02.2014, 13:50
Benutzerbild von protonenbeschleuniger
Verbesserer
XHTMLforum-Kenner
 
Registriert seit: 06.09.2007
Beiträge: 4.977
protonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von CaptainGerrard Beitrag anzeigen
Ich lege viel Wert auf Performance,
Dann solltest du dir eine Struktur überlegen, die auch einfach darstellbar ist. So musst du oder jquery immer einiges an Sucharbeit leisten.

Wobei deine Beschreibung schon nicht logisch ist.
Zitat:
Ausgangspunkt wäre immer die Klasse .foo, davon suche ich immer das letzte Element bevor ein Element mit einer anderen (oder gar keinen) Klasse folgt
(das letzte Element besitzt immer die Klasse .bar).
Das widerspricht sich doch, entweder kann das letzte Element gar keine Klasse haben oder es besitzt immer die Klasse .bar - beides geht nicht.
Mit Zitat antworten
  #7 (permalink)  
Alt 13.02.2014, 12:54
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 12.11.2010
Ort: Bad Langensalza
Beiträge: 733
gabischatz ist in Verruf geraten
Standard

Meintest du das so? Edit fiddle - JSFiddle
MfG
Mit Zitat antworten
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
jQuery und Cookies: Position mehrerer Elemente speichern? sepp88 Javascript & Ajax 2 06.05.2011 14:59
jquery - hover und mehrere elemente monran Javascript & Ajax 8 20.04.2011 21:01
JQUERY und gewisse Anzahl an Elemente einblenden sturmi2 Javascript & Ajax 7 10.11.2009 17:50
Liste inline mit Bildchen, zweizeilige Elemente?? me_flay CSS 0 23.03.2007 18:06
Liste (inline) Umbruch erzeugen Steakfred CSS 3 09.05.2006 13:27


Alle Zeitangaben in WEZ +2. Es ist jetzt 11:02 Uhr.