1. #1
    Avatar von DotNet
    Registriert seit
    10.06.2015
    Beiträge
    661
    Thanked 316 Times in 185 Posts

    Standard jQuery größer/kleiner als Selektor

    Ich habe einige Elemente mit einem Data-Attribute, das aus einer nummerischen Id wie 1,2,3 etc. besteht. Mit jQuery möchte ich nun alle Elemente in einem bestimmten Range haben, zum Beispiel alle mit einer Id größer wie 5. Die normalen Data-Selektoren wie

    $(".DataTable[data-id=4]")

    kenne ich, damit funktioniert es. Ich möchte aber nicht auf genau die Id selektieren sondern möchte einen Range haben

    $(".DataTable[data-id>4]")

    Das funktioniert nicht, jQuery wirft dann einen "unrecognized expression" Fehler. Daher habe ich in der Dokumentation unter Attribute-Selektoren nachgeschaut. Ich konnte aber nichts finden, womit ich größer/kleiner als selektieren kann. Die einzige Möglichkeit scheint in der Verwendung der filter() Funktion zu bestehen, sprich ich habe dann dort eine Funktion mit der ich von Hand das Data-Attribute abfange und nur jene Elemente zurückgebe, bei denen es im gewünschten Bereich liegt.

    Die Lösung scheint mir aber etwas unsauber zu sein, ich würde es lieber mit einem Selektor lösen. Gibt es da keine andere Möglichkeit?

    Im Krieg gibt es keine Gewinner, nur Verlierer!

  2. #2
    Avatar von DMW007
    Registriert seit
    15.11.2011
    Beiträge
    6.080
    Thanked 9.118 Times in 2.995 Posts
    Blog Entries
    5

    Standard AW: jQuery größer/kleiner als Selektor

    Nativ mit jQuery ist das nicht möglich, da es keinen derartigen Selektor gibt. Mit den Größer/Kleiner-Zeichen suchst du nach Kind-Elementen (also hierarchisch), sodass ein Konstrukt wie [data-id>4] nicht funktioniert. Lediglich den :gt() Selektor hat jQuery an Board. Der geht aber nach dem Index der Elemente und berücksichtigt keine Attribute, sodass diese Lösung nur mit fortlaufenden Elementen funktionieren würde wie beispielsweise hier:
    HTML-Code:
    <div data-id="1"></div>
    <div data-id="2"></div>
    <div data-id="3"></div>
    Die einzige Möglichkeit wäre, einen eigenen Filter zu erstellen. Wobei sich das nur lohnen dürfte, wenn du die Funktion häufiger benötigst. Ansonsten ist die Verwendung der filter() Funktion von jQuery hier die sinnvollste Methode:


    var intervalData = $('.DataTable').filter(function() {
    return $(this).data('id') > 5 && $(this).data('id') < 10;
    })


  3. The Following User Says Thank You to DMW007 For This Useful Post:

    DotNet (22.01.2016)

Ähnliche Themen

  1. Suche hübsches Mädchenbild in Größer
    Von ElkosMED im Forum Wallpaper
    Antworten: 2
    Letzter Beitrag: 04.12.2013, 23:14
  2. IFrame Inhalt mit JQuery?
    Von Max899 im Forum Webentwicklung
    Antworten: 3
    Letzter Beitrag: 01.06.2013, 18:12
  3. Dokument größer Drucken als es aus dem Drucker kommt?
    Von MaskuL1n im Forum Digitale Bild- und Videobearbeitung
    Antworten: 4
    Letzter Beitrag: 31.08.2012, 18:37
  4. Sorgen um Schweinsteiger immer größer!
    Von Waterpolo im Forum RealLife News
    Antworten: 1
    Letzter Beitrag: 31.05.2012, 03:42
  5. [Kritik] Hinweis Box immer größer
    Von xTracZ im Forum Feedback
    Antworten: 2
    Letzter Beitrag: 24.01.2012, 21:35
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.