Maintenant, ce n'est pas juste une autre question Quelle est la différence , j'ai fait quelques tests (http://jsfiddle.net/ZC3Lf/) en modifiant le prop
et attr
de <form action="/test/"></form>
avec la sortie étant:
1) Test de modification de l'hélice
Prop:http://fiddle.jshell.net/test/1
Attr:http://fiddle.jshell.net/test/1
2) Test de modification Attr
Prop:http://fiddle.jshell.net/test/1
Attr:/test/1
3) Attr puis Prop Modification test
Prop:http://fiddle.jshell.net/test/11
Attr:http://fiddle.jshell.net/test/11
4) Prop puis Attr Modification test
Prop:http://fiddle.jshell.net/test/11
Attr:http://fiddle.jshell.net/test/11
Maintenant, je suis confus sur deux ou trois choses, pour autant que je sache:
Prop: La valeur dans son état actuel après toute modification via JavaScript
Attr: La valeur telle qu'elle a été définie dans le html au chargement de la page.
Maintenant, si c'est correct,
- Pourquoi modifier le
prop
semble - t-il rendre leaction
pleinement qualifié, et inversement pourquoi ne pas modifier l'attribut? - Pourquoi modifier le
prop
in1)
modifie-t-il l'attribut, celui-là n'a aucun sens pour moi? - Pourquoi modifier le
attr
in2)
modifie-t-il la propriété, sont-ils censés être liés de cette façon?
Code de test
HTML
JavaScript
var element = $('form');
var property = 'action';
/*You should not need to modify below this line */
var body = $('body');
var original = element.attr(property);
body.append('<h1>Prop Modification test</h1>');
element.prop(property, element.prop(property) + 1);
body.append('Prop: '+element.prop(property)+'<br />');
body.append('Attr: '+element.attr(property)+'<hr />');
//reset
element.prop(property, original);
element.attr(property, original);
body.append('<h1>Attr Modification test</h1>');
element.attr(property, element.attr(property) + 1);
body.append('Prop: '+element.prop(property)+'<br />');
body.append('Attr: '+element.attr(property)+'<hr />');
//reset
element.prop(property, original);
element.attr(property, original);
body.append('<h1>Attr then Prop Modification test</h1>');
element.attr(property, element.attr(property) + 1);
element.prop(property, element.prop(property) + 1);
body.append('Prop: '+element.prop(property)+'<br />');
body.append('Attr: '+element.attr(property)+'<hr />');
//reset
element.prop(property, original);
element.attr(property, original);
body.append('<h1>Prop then Attr Modification test</h1>');
element.prop(property, element.prop(property) + 1);
element.attr(property, element.attr(property) + 1);
body.append('Prop: '+element.prop(property)+'<br />');
body.append('Attr: '+element.attr(property)+'<hr />');