2010-06-11 20 views

Antwort

35
var arraysOfIds = $('#particularDivId img').map(function(){ 
         return this.id; 
        }).get(); 

// arraysOfIds has now all the id's, access it as arraysOfIds[0], arraysOfIds[1].... 
+2

Ahh, cool. Ich habe mit der Funktion .map() etwas Neues gelernt. Wenn Sie jedoch die Dokumentation betrachten, warum benötigen Sie den Aufruf .get() am Ende. Ich habe einfach deinen Code ohne es ausprobiert und es hat gut funktioniert. Neuling möchte lernen. –

+0

Ich würde diese +10 geben, wenn ich könnte, netter Trick. – raffian

10

Raue Vermutung, aber versuchen:

var imgIds = new Array(); 

$("div#divID img").each(function(){ 
    imgIds.push($(this).attr('id')); 
}); 

Sie haben nicht den Namen des div gegeben, aber ich habe divId als die ID des div verwendet. Ändern Sie das einfach nach Ihren Bedürfnissen.

+0

Sie sollten wahrscheinlich ein Array verwenden, kein String. – icktoofay

+0

Hallo zusammen. Ja, einen Fehler gemacht, nur behoben. Dah !!! Zu früh für mich. –

9

Verwenden Sie einen Kinderselektor. So wollen Sie sagen ich all des Kindes 'img' Elemente von div #myDiv

$("#myDiv > img").css("border", "3px double red"); 

http://api.jquery.com/child-selector/

+0

Ich wollte, dass dies funktioniert, als ich $ ('img') ersetzte. DoStuff(); mit $ ("# contents> img"). doStuff(); es macht nichts mehr. Ich habe einzelne Zitate und div # Inhalte auch versucht. – Muskie

+0

Meine Lösung war, den Nachkommen Selektor nicht Kind zu verwenden. [link] (http://api.jquery.com/descendant-selector/) – Muskie

+0

Dies wählt nicht alle untergeordneten img-Elemente eines div aus, sondern einfach die direkten Nachkommen. –

3
function textOnly() { 
      jQuery('#dvContent img').each(function() { 
       jQuery(this).css('display', 'none'); 
      }); 
     } 
Verwandte Themen