j'ai besoin d'utiliser un flag sur un objet html
j'ai donc eu l'idée de passer par un attribut
=> NaN :cry:Code:
1
2
3
4 $('#dest').attr('counter',0) $('#dest').attr('counter',$(this).attr('counter')*1+1) alert($('#dest').attr('counter'))
Version imprimable
j'ai besoin d'utiliser un flag sur un objet html
j'ai donc eu l'idée de passer par un attribut
=> NaN :cry:Code:
1
2
3
4 $('#dest').attr('counter',0) $('#dest').attr('counter',$(this).attr('counter')*1+1) alert($('#dest').attr('counter'))
Et en passant par une propriété JavaScript, ça fonctionne pas mieux ?
Code:
1
2
3 $('#dest').counter=0; $('#dest').counter=$(this).counter*1+1; alert($('#dest').counter);
undefined ...Code:
1
2 $('#source').counter=0 alert($('#source').counter)
0Code:
1
2 $('#source').get(0).counter=0 alert($('#source').get(0).counter)
:yaisse2:
et du coup:
Code:
1
2
3 $('#source').get(0).counter=0 $('#source').get(0).counter++ alert($('#source').get(0).counter)
Salut Spafy,
je t'encourage vivement de passer par les métadonnées pour gérer ce genre de compteur plutôt que par un attribut.
Tu peux donc faire :
Un exemple plus poussé :Code:
1
2
3
4 $('#source').data("counter", 0) // counter = 0 $('#source').data().counter++ // Incrémentation counter $('#source').data("counter") // counter = 1 $('#source').removedata("counter") // counter = null
La doc: http://api.jquery.com/data/Code:
1
2
3
4
5 $('#source').data("nain", {he: 0, ho: 0}) $('#source').data("nain").he++ $('#source').data("nain").ho++ $('#source').data("nain") // {he: 1, ho: 1} $('#source').removedata("nain") // nain= null
joli !:hola:
:merci:Merci Arnaud pour cette piqure de rappel ...:oops:
Bonjour
@Arnaud F. a bien raison de conseiller l'usage de data() : http://api.jquery.com/data/
Mais la source de ton problème était l'usage de this
Code:
1
2
3
4
5
6
7
8
9
10 $('#dest').attr('counter', '0'); /* * Un attribut est toujours un texte, et * texte + 1 sollicite, explicitement * ou non, parseInt(), donc this est window ! */ $('#dest').attr('counter', window.parseInt($("#dest").attr('counter'), 10) + 1); console.log($('#dest').attr('counter'));