Sekarang ini bukan hanya pertanyaan Apa perbedaannya , saya telah melakukan beberapa tes (http://jsfiddle.net/ZC3Lf/) memodifikasi prop
dan attr
dari <form action="/test/"></form>​
dengan output menjadi:
1) prop Uji Modifikasi
Prop:http://fiddle.jshell.net/test/1
Attr:http://fiddle.jshell.net/test/1
2) Attr Modification test
Prop:http://fiddle.jshell.net/test/1
Attr:/test/1
3) Attr lalu Prop Modification test
Prop:http://fiddle.jshell.net/test/11
Attr:http://fiddle.jshell.net/test/11
4) Prop lalu Attr Modification test
Prop:http://fiddle.jshell.net/test/11
Attr:http://fiddle.jshell.net/test/11
Sekarang saya bingung tentang beberapa hal, sejauh pengetahuan saya:
Prop: Nilai dalam keadaan saat ini setelah modifikasi melalui JavaScript
Attr: Nilai seperti yang didefinisikan dalam html saat pemuatan halaman.
Sekarang jika ini benar,
- Mengapa memodifikasi atribut
prop
tampaknya membuat yangaction
memenuhi syarat, dan sebaliknya mengapa memodifikasi atribut tidak? - Mengapa memodifikasi
prop
in1)
mengubah atribut, yang satu itu tidak masuk akal bagi saya? - Mengapa memodifikasi
attr
dalam2)
mengubah properti, apakah mereka dimaksudkan untuk dihubungkan seperti itu?
Kode Tes
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 />');