00willson: jQuery: 2 wrapped sets kombinieren

Hallo zusammen.

Ich hab eine Frage zu jQuery und hoffe, Ihr könnt mir diesbezüglich weiter helfen. Ich habe zwei jQuery-Selektoren (wrapped sets) und würde darauf gern eine switch-Anweisung anwenden. Um zu vermeiden, das gleiche switch 2x auf die beiden verschiedenen wrapped sets anwenden zu müssen, würde ich diese gern "verschmelzen". Hab jemand eine Idee, wie sowas gehen kann?

Bspw.:

  
switch ($('div#id .classA .classB').attr("type")) {  
...  
}  

und

  
switch ($('div#id .classC .classD').attr("type")) {  
... // Anweisungen wie oben  
}  

Der Versuch, beides mittels .andSelf() in eine command line zu überführen, funktioniert leider nicht wie erhofft.

  
$('div#id .classA .classB');  
switch ($('div#id .classC .classD').andSelf().attr("type")) {  
...  
}  

Für eine Anregung wäre ich Euch sehr dankbar!

Viele Grüße

  1. Moin,

    Für eine Anregung wäre ich Euch sehr dankbar!

    vielleicht ist es so einfach wie

    switch ($('div#id .classA .classB, div#id .classC .classD').attr("type"))

    Viele Grüße

    Stefan

    --
    bythewaythewebsuxgoofflineandenjoytheday
    1. Moin,

      Für eine Anregung wäre ich Euch sehr dankbar!

      vielleicht ist es so einfach wie

      switch ($('div#id .classA .classB, div#id .classC .classD').attr("type"))

      Viele Grüße

      Stefan

      Hallo zusammen.

      Besten Dank für die beiden Tipps, is ja der Hammer! Ich werd mich gleich mal drauf stürzen.

      @ Mathias: ich beackere das rapped set schon mit einem

        
      $(...).each(function() {  
      ...  
      switch (...)  
      ...  
      }  
      
      

      Sonst, da gebe ich Dir vollkommen Recht, macht das ganze wenig Sinn.

      @ Stefan: sollte das Leben wirklich so einfach sein? Man, jQuery is echt die geilste Erfindung seit dem offenen Feuer!  ;)

      Ich seh schon - in meinem Alter sollte man zur geposteten Zeit wohl doch lieber schlafen, als sich über sowas Gedanken zu machen.

      Nochmal besten Dank & frohe Weihnachten!

  2. switch ($('div#id .classA .classB').attr("type")) {

    Ehrlich gesagt verstehe ich nicht, was du damit vorhast.

    attr("name") gibt dir den Attributwert des ersten Elements in der Liste. Wenn du zwei Listen kombinierst, dann bringt dir das nichts, wenn die erste nicht leer ist und die zweite nicht genau ein Element enthält.

    Wenn du alle Elemente der Listen durchlaufen willst, müsstest du mit each arbeiten.

    $('div#id .classA .classB');
    switch ($('div#id .classC .classD').andSelf().attr("type")) {

    andSelf macht nur beim Chaining Sinn, also $("x").find("y").andSelf() würde auch das Resultat von "x" hinzufügen. Wenn du allerdings $("x"); $("y").andSelf() schreibst, passiert m.W. gar nichts.

    Was geht ist:

    $("x").add($("y"))

    Mathias