Foreach Schleife in jquery

stimmen
47

Ich habe ein Problem, wo ich die Fenstergröße in jquery dann througbh drei img Elementen Looping bin immer die Breite des Inline-Style on the fly anzuwenden.

Das Problem ist, dass, wenn die foreach-Schleife i diesen Fehler Uncaught Typeerror in der Konsole ausgeführt wird: Object [object Object] hat keine Methode ‚setAttribute‘

Ich habe einen Haltepunkt in der Schleife gesetzt und angewandt setAttribute auf diese und es scheint gut zu funktionieren. Ich verstehe nicht , warum , wenn es durch die Array - Schleife ist es nicht jedes Array - Element als Objekt der Behandlung , aber scheint zu versuchen , das Array als ein Objekt zuzugreifen.

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

$(window).resize(function() {

    windowsize = $(window).width();

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

    });                                                                 
});

sorry, wenn dies nicht klar ist,

jede Hilfe wird sehr geschätzt

Veröffentlicht am 26/07/2013 um 15:24
vom benutzer
In anderen Sprachen...                            


2 antworten

stimmen
1

.setAttribute()JavaScript - Methode ist eine native. Wie Sie jQuery verwenden, verwenden Sie .attr()stattdessen:

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

oder:

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

oder noch besser:

$(this).width(windowsize);
Beantwortet am 26/07/2013 um 15:28
quelle vom benutzer

stimmen
2

Die setAttribute ist eine js Methode und keine jquery - Methode.

Sie müssen entweder die rohe js - Methode auf dem DOM - Elemente verwenden , um direkt oder verwenden jQuery Version .attr () des Verfahrens.

Sowohl die folgenden Möglichkeiten sind die gleichen, aber persönlich die nativen js verwenden fühlt sich besser.

$( this ).attr("style","width:"+windowsize+"px");
this.setAttribute("style","width:"+windowsize+"px");
Beantwortet am 26/07/2013 um 15:28
quelle vom benutzer

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