Bücher online kostenlos Kostenlos Online Lesen
JQuery Kochbuch (German Edition)

JQuery Kochbuch (German Edition)

Titel: JQuery Kochbuch (German Edition) Kostenlos Bücher Online Lesen
Autoren: jQuery Community Experts
Vom Netzwerk:
Arrays und Objekte iterieren
    Problem
    Sie müssen über jedes Element in einem Array oder Attribut eines Objekts iterieren oder es in einer Schleife durchlaufen.
    Lösung
(function($) {
    $(document).ready(function() {
     var months = [ 'Januar', 'Februar', 'März', 'April', 'Mai',
     'Juni', 'Juli', 'August', 'September', 'Oktober',
     'November', 'Dezember'];
     $.each(months, function(index, value) {
     $('#months').append('
  • ' + value + '
  • ');
         });

         var days = { Montag: 1, Dienstag: 2, Mittwoch: 3,
         Donnerstag: 4, Freitag: 5, Samstag: 6, Sonntag: 7 };
         $.each(days, function(key, value) {
         $('#days').append('
  • ' + key + ' (' + value + ')
  • ');
         });
        });
    })(jQuery);
        Diskussion
        In diesem Rezept iterieren wir mit
    $.each()
    sowohl über ein Array als auch über ein Objekt. Dabei handelt es sich um eine elegante Schnittstelle für die häufig vorkommende Aufgabe der Iteration. Das erste Argument von
    $.each()
    ist das Array oder das Objekt, über das iteriert werden soll, während das zweite die Callback-Methode ist, die für jedes Element aufzurufen ist. (Beachten Sie, dass dies etwas anders ist als bei der jQuery-Collection-Methode
    $('div').each()
    , deren erstes Argument die Callback-Funktion ist.)
        Wenn die vom Entwickler definierte Callback-Funktion aufgerufen wird, enthält die Variable
    this
    den Wert des aktuellen Elements. Das vorherige Beispiel kann also auch wie folgt geschrieben werden:
    (function($) {
        $(document).ready(function() {
         var months = [ 'Januar', 'Februar', 'März', 'April', 'Mai',
         'Juni', 'Juli', 'August', 'September', 'Oktober',
         'November', 'Dezember'];
         $.each(months, function() {
         $('#months').append('
  • ' + this + '
  • ');
         });

         var days = { Montag: 1, Dienstag: 2, Mittwoch: 3,
         Donnerstag: 4, Freitag: 5, Samstag: 6, Sonntag: 7 };
         $.each(days, function(key) {
         $('#days').append('
  • ' + key + ' (' + this + ')
  • ');
         });
        });
    })(jQuery);

    Arrays mit jQuery.grep filtern
        Problem
        Sie müssen Elemente in einem Array filtern und entfernen.
        Lösung
    (function($) {
        $(document).ready(function() {
         var months = [ 'Januar', 'Februar', 'März', 'April', 'Mai',
         'Juni', 'Juli', 'August', 'September', 'Oktober',
         'November', 'Dezember'];
         months = $.grep(months, function(value, i) {
         return ( value.indexOf('J') == 0 );
         });
         $('#months').html( '
  • ' + months.join('
  • ') + '
  • ' );
        });
    })(jQuery);
        Diskussion
        Dieses Rezept nutzt die Methode
    $.grep()
    , umdas Array
    months
    so zu filtern, dass es nur Einträge enthält, die mit dem Großbuchstaben
    J
    beginnen. Die Methode
    $.grep
    gibt das gefilterte Array zurück. Der vom Entwickler definierten Callback-Methode werden zwei Argumente übergeben. Sie muss den Booleschen Wert
    true
    zurückgeben, wenn ein Element beibehalten werden soll, oder
    false
    , wenn es verworfen werden kann. Das erste Argument ist der Wert des Array-Elements (in diesem Fall der Monat), während das zweite den inkrementierten Wert des Schleifendurchlaufs der Methode
    $.grep()
    angibt. Wenn Sie zum Beispiel die »ungeraden« Monate entfernen möchten, können Sie prüfen, ob
    ( i % 2 ) == 0
    gilt, wobei der linke Teil des Ausdrucks den Rest von i / 2 liefert. (
    %
    ist der Modulo-Operator, der den Rest einer Division zurückgibt. Ist
    i = 4
    , ergibt
    i
    geteilt durch
    2
    den Rest
    0
    .)
    (function($) {
        $(document).ready(function() {
         var months = [ 'Januar', 'Februar', 'März', 'April', 'Mai',
         'Juni', 'Juli', 'August', 'September', 'Oktober',
         'November', 'Dezember'];
         months = $.grep(months, function(value, i) {
         return ( i % 2 ) == 0;
         });
         $('#months').html( '
  • ' + months.join('
  • ') + '
  • ' );
        });
    })(jQuery);

    Über Array-Elemente mit jQuery.map iterieren und sie verändern
        Problem
        Sie wollen über jedes Element in einem Array iterieren und dessen Wert verändern.
        Lösung
    (function($) {
        $(document).ready(function() {
         var months = [ 'Januar', 'Februar', 'März', 'April', 'Mai',
         'Juni', 'Juli', 'August', 'September', 'Oktober',
         'November', 'Dezember'];
         months = $.map(months, function(value, i) {
         return value.substr(0, 3);
         });
         $('#months').html( '
  • ' + months.join('
  • ') + '
  • ' );
        });
    })(jQuery);
        Diskussion
        In diesem Rezept iteriert
    $.map()
    über das Array
    months
    und gibt abgekürzte Versionen (die ersten drei Zeichen) der Monatsnamen zurück. Die Methode
    $.map()
    erwartet ein Array und eine Callback-Methode als Argument, iteriert dann über jedes Array-Element und führt dazu die Callback-Funktion aus. Das

    Weitere Kostenlose Bücher