jQuery attr vs prop?
Teraz to nie jest tylko kolejnaJakie jest pytanie o różnicę, Mamwykonałem kilka testów (http://jsfiddle.net/ZC3Lf/) modyfikowanieprop
iattr
z<form action="/test/"></form>
z wyjściem:
1) prop Test modyfikacji
Rekwizyt:http://fiddle.jshell.net/test/1
Attr:http://fiddle.jshell.net/test/1
2) Test modyfikacji Attr
Rekwizyt:http://fiddle.jshell.net/test/1
Attr:/test/1
3) Attr, a następnie Test modyfikacji
Rekwizyt:http://fiddle.jshell.net/test/11
Attr:http://fiddle.jshell.net/test/11
4) Prop, a następnie test modyfikacji Attr
Rekwizyt:http://fiddle.jshell.net/test/11
Attr:http://fiddle.jshell.net/test/11
Teraz jestem zdezorientowany co do kilku rzeczy, o ile moja wiedza sięga:
Rekwizyt: Wartość w bieżącym stanie po wszelkich modyfikacjach za pomocą JavaScript
Attr: Wartość zdefiniowana w html na stronie ładowania.
Teraz, jeśli to jest poprawne,
Dlaczego modyfikowanieprop
wydają się robićaction
w pełni kwalifikowany i odwrotnie, dlaczego nie modyfikuje się atrybutu?Dlaczego modyfikowanieprop
w1)
zmodyfikować atrybut, który nie ma dla mnie sensu?Dlaczego modyfikowanieattr
w2)
zmodyfikować nieruchomość, czy mają być połączone w ten sposób?Kod testuHTML
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 />');