Foreach pętli jquery

głosy
47

Mam problem gdzie jestem coraz rozmiaru okna w jQuery następnie pętli througbh trzech elementów img zastosować szerokość do stylu inline w locie.

Problem jest, że gdy pętla foreach jest prowadzony ja dostać ten błąd w konsoli Uncaught TypeError: Object [object Object] nie ma metoda „setAttribute”

I umieścić punkt przerwania w pętli i stosowane setAttribute na to i wydaje się działać prawidłowo. Nie rozumiem dlaczego, gdy pętle za pośrednictwem tablicy nie jest traktowanie każdego elementu tablicy jako przedmiot, ale wydaje się, że próbujesz uzyskać dostęp do tablicy jako przedmiot.

var windowsize = $(window).width();

$(window).resize(function() {

    windowsize = $(window).width();

    $( #imgs img ).each(function (){
        $( this ).setAttribute(style,width:+windowsize+px);

    });                                                                 
});

Przepraszam, jeśli to nie jest jasne

Każda pomoc będzie znacznie Należy zauważyć,

Utwórz 26/07/2013 o 15:24
użytkownik
W innych językach...                            


2 odpowiedzi

głosy
1

.setAttribute()Jest to metoda naturalnej Javascript. Jak używasz jQuery, użyj .attr()zamiast:

$(this).attr("style", "width:" + windowsize + "px");

lub:

$(this).css("width", windowsize + "px");

albo jeszcze lepiej:

$(this).width(windowsize);
Odpowiedział 26/07/2013 o 15:28
źródło użytkownik

głosy
2

SetAttribute to metoda js a nie metoda jQuery.

Albo trzeba użyć surowe metody js na elemencie DOM bezpośrednio lub użyć jQuery wersji .attr () metody.

Oba poniższe sposoby są takie same, ale osobiście z wykorzystaniem rodzimych js czuje się lepiej.

$( this ).attr("style","width:"+windowsize+"px");
this.setAttribute("style","width:"+windowsize+"px");
Odpowiedział 26/07/2013 o 15:28
źródło użytkownik

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more