2010-06-11 16 views

Odpowiedz

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, spoko. Nauczyłem się czegoś nowego dzięki funkcji .map(). Jednak patrząc na dokumentację, dlaczego potrzebujesz wywołania .get() na końcu. Po prostu wypróbowałem twój kod bez niego i działało dobrze. Nowicjusz, który chce się uczyć. –

+0

Dałbym to +10, gdybym mógł, niezła sztuczka. – raffian

10

Szorstki przypuszczenie, ale spróbuj:

var imgIds = new Array(); 

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

Nie dały nazwę div, ale Użyłem divId jako identyfikator div. Po prostu zmień to, aby dopasować swoje potrzeby.

+0

Powinieneś raczej używać tablicy, a nie ciąg. – icktoofay

+0

Cześć. Tak, popełniłem błąd, naprawiłem to. Doh !!! Za wcześnie dla mnie. –

9

Użyj wybieraka funkcji podrzędnych. Więc mówiąc chcę wszystkich elementów dziecka 'img' div #myDiv

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

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

+0

Chciałem, aby to zadziałało, gdy zastąpiłem $ ('img'). DoStuff(); z $ ("# zawartość> img"). doStuff(); już nie robi rzeczy. Próbowałem również pojedynczych cytatów i zawartości div #. – Muskie

+0

Moim rozwiązaniem było użycie selektora potomka, a nie potomka. [link] (http://api.jquery.com/descendant-selector/) – Muskie

+0

To NIE WYBIERA wszystkich elementów img dziecka, ale po prostu bezpośrednich potomków. –

3
function textOnly() { 
      jQuery('#dvContent img').each(function() { 
       jQuery(this).css('display', 'none'); 
      }); 
     } 
Powiązane problemy