Foreach loop σε jQuery

ψήφοι
47

Έχω ένα πρόβλημα στο οποίο έχω αρχίσει το μέγεθος του παραθύρου σε jQuery, στη συνέχεια, looping througbh τρεις img στοιχεία για να εφαρμόσει το πλάτος με το ενσωματωμένο στυλ on the fly.

Το θέμα είναι ότι όταν ο βρόχος foreach εκτελείται παίρνω αυτό το σφάλμα στην κονσόλα Ασσύληπτος τύπος: Αντικείμενο [αντικείμενο Object] δεν έχει καμία μέθοδος «setAttribute»

Έχω βάλει ένα σημείο διακοπής στο βρόχο και να εφαρμοστεί setAttribute σε αυτό και φαίνεται να δουλεύουν μια χαρά. Ι dont καταλάβετε γιατί όταν βρόχους μέσω του πίνακα δεν είναι θεραπεία κάθε στοιχείο πίνακα ως αντικείμενο, αλλά φαίνεται να προσπαθεί να αποκτήσετε πρόσβαση στο πίνακα ως ένα αντικείμενο.

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

$(window).resize(function() {

    windowsize = $(window).width();

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

    });                                                                 
});

συγγνώμη αν αυτό δεν είναι σαφές

Οποιαδήποτε βοήθεια θα εκτιμηθεί ιδιαίτερα να

Δημοσιεύθηκε 26/07/2013 στις 15:24
χρήστη
Σε άλλες γλώσσες...                            


2 απαντήσεις

ψήφοι
1

.setAttribute()είναι ένα εγγενές μέθοδο Javascript. Όπως μπορείτε να χρησιμοποιείτε jQuery, χρησιμοποιήστε .attr()αντ 'αυτού:

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

ή:

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

ή ακόμα καλύτερα:

$(this).width(windowsize);
Απαντήθηκε 26/07/2013 στις 15:28
πηγή χρήστη

ψήφοι
2

Η setAttribute είναι μια μέθοδος js και όχι μια μέθοδος jQuery.

Θα πρέπει είτε να χρησιμοποιήσει την πρώτη js μέθοδο στο στοιχείο DOM άμεσα ή χρησιμοποιήστε το jQuery έκδοση .attr () της μεθόδου.

Και οι δύο παρακάτω τρόπους είναι η ίδια, αλλά προσωπικά με τα εγγενή js αισθάνεται καλύτερα.

$( this ).attr("style","width:"+windowsize+"px");
this.setAttribute("style","width:"+windowsize+"px");
Απαντήθηκε 26/07/2013 στις 15:28
πηγή χρήστη

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