2010-12-09 10 views
1

Ich bin neu in jQuery, vertraut mit PHP & CSS. Ich habe verschachtelte, dynamisch generierte divs, die ich (die IDs) an ein serverseitiges Skript senden möchte, um Zahlen zu aktualisieren. Ich möchte alles in der .content-Klasse überprüfen. Nur Divs mit IDs sollten zur Verarbeitung gesendet werden; jedoch habe ich Schwierigkeiten, eine rekursive Kinder machen() überprüfen ... dies ist die beste (nicht rekursiv) konnte ich tun:Rekursion von .Kinder(), um nach ID-Attribut zu suchen

$(".content").children().each(function() { 
    if ($(this).attr('id').length == 0) { 
     $(this).children().each(function() { 
      if ($(this).attr('id').length == 0) { 
       $(this).children().each(function() { 
        if ($(this).attr('id').length == 0) { 
         $(this).children().each(function() { 
          alert($(this).attr('id')); 
         }); 
        } 
       }); 
      } 
     }); 
    } 
}); 

und es nur alert() 's die IDs der alles auf die Niveau, wo sie sein sollten. Es muss einen besseren Weg geben, dies zu tun ... vielen Dank im Voraus für jeden Rat. -Justin

Antwort

5

Versuchen:

var ids = $('.content div[id]').map(function() { 
    return this.id; 
}).get(); 

.content div[id] finden Sie alle div Nachkommen wählen (auf jeder Ebene) von .content mit nicht leeren ID-Attribute. Der [id] Teil ist ein Beispiel für den Has Attribute Selektor.

Ich habe .map verwendet. um die IDs der Übereinstimmungen zu extrahieren, und .get(), um das resultierende Objekt in ein Basisarray umzuwandeln.

es hier probieren: http://jsfiddle.net/M96yK/

+0

über alert (ids) bestätigt angegeben ;. Danke für die rechtzeitige Antwort. – Justin

+0

@Justin - Jederzeit! – karim79

1

Sie tun können:

$(".content div[id]"); 

Dies wird wieder ein jQuery-Objekt, das alle divs enthält, die ids haben

Verwandte Themen