Teraz to nie jest tylko kolejne pytanie , jaka jest różnica , zrobiłem kilka testów (http://jsfiddle.net/ZC3Lf/), modyfikując prop
and attr
of, <form action="/test/"></form>
z wynikiem:
1) Rekwizyt Test modyfikacji
Prop:http://fiddle.jshell.net/test/1
Attr:http://fiddle.jshell.net/test/1
2) Test modyfikacji atr.
Prop:http://fiddle.jshell.net/test/1
Attr:/test/1
3) Attr, a następnie Test modyfikacji
Prop:http://fiddle.jshell.net/test/11
Attr:http://fiddle.jshell.net/test/11
4) Prop, potem Attr Test modyfikacji
Prop:http://fiddle.jshell.net/test/11
Attr:http://fiddle.jshell.net/test/11
Teraz jestem zdezorientowany co do kilku rzeczy, o ile wiem:
Prop: Wartość w obecnym stanie po wszelkich modyfikacjach za pomocą JavaScript
Attr: Wartość taka, jaka została zdefiniowana w html podczas ładowania strony.
Jeśli to prawda,
- Dlaczego modyfikowanie
prop
wydaje się powodować, żeaction
modyfikacja atrybutu pełni kwalifikowana i odwrotnie, dlaczego modyfikacja atrybutu nie? - Dlaczego modyfikowanie pliku
prop
in1)
modyfikuje atrybut, który nie ma dla mnie sensu? - Dlaczego modyfikacja
attr
in2)
modyfikuje właściwość, czy mają być w ten sposób połączone?
Kod testowy
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 />');