2010-11-02 7 views
1

Probablement mal comprendre quelque chose de simple, mais je n'arrive pas à le faire fonctionner. Je veux: parcourir chaque élément img dans "wrapper", et enlever tout le html de l'attribut title (avec stripTags() de mootools plus). Je reçois l'erreur:mootools "ceci" dans chaque?

"this.get n'est pas une fonction"

est ici le code:

$('wrapper').getElements('img').each(function() { 

    var oldAlt = this.get('title').stripTags(); 
    this.setProperty('alt', oldAlt); 

}); 

Merci à l'avance

Répondre

6
$('wrapper').getElements('img').each(function(el) { 
    var oldAlt = el.get('title').stripTags(); 
    el.setProperty('alt', oldAlt); 

}); 

cela ne se réfère pas à la élément de bouclage - le premier argument de la fonction de rappel .each est element passé, le second est index (opposé à jquery où index est premier).

+0

Merci c'est correct, et ce que je cherchais. – lowkey

-2

L'autre option consiste à lier la variable de this

$('wrapper').getElements('img').each(function() { 

    var oldAlt = this.get('title').stripTags(); 
    this.setProperty('alt', oldAlt); 

}).bind(this); 

Le .bind(this) supplémentaire signifie essentiellement, dans le périmètre intérieur de la chaque fonction, la this variable est liée à toute valeur est fait référence à l'extérieur. (comme passer la variable dans le champ d'application). Si vous avez besoin d'accéder à la normale ce pointeur aussi, comme la référence extérieure, vous devriez aller avec une option telle que la réponse de @ Chetan

+1

er, il veut faire une boucle sur tous les éléments img et définir un tag alt différent sur eux. que feriez-vous exactement en liant le callback à 'this' quand vous ne connaissez même pas le contexte de l'extrait pour ce bloc de code (ceci peut être une fenêtre ou une instance de classe ou même un élément d'ancrage qui a déclenché un événement click ...). –

+2

Sans mentionner que bind doit être attaché à la fonction anonyme à la place. chacun a aussi une place pour lier l'objet: each (fn, bind_object), où bind_object ici serait 'this' – zalun

+0

Ah vrai, bon point – Jeremy