Bây giờ đây không chỉ là câu hỏi khác Câu hỏi khác biệt là gì , tôi đã thực hiện một số thử nghiệm (http://jsfiddle.net/ZC3Lf/) sửa đổi prop
và attr
của <form action="/test/"></form>
với đầu ra là:
1) Kiểm tra sửa đổi prop
Đề xuất:http://fiddle.jshell.net/test/1
Attr:http://fiddle.jshell.net/test/1
2) Kiểm tra sửa đổi Attr
Đề xuất:http://fiddle.jshell.net/test/1
Attr:/test/1
3) Attr sau đó kiểm tra sửa đổi
đề xuất Đề xuất:http://fiddle.jshell.net/test/11
Attr:http://fiddle.jshell.net/test/11
4) Đề xuất rồi kiểm tra sửa đổi Attr
Đề xuất:http://fiddle.jshell.net/test/11
Attr:http://fiddle.jshell.net/test/11
Bây giờ tôi đang bối rối về một số điều, theo như kiến thức của tôi:
Prop: Giá trị ở trạng thái hiện tại của nó sau bất kỳ sửa đổi nào qua JavaScript
Attr: Giá trị như được định nghĩa trong html khi tải trang.
Bây giờ nếu điều này là chính xác,
- Tại sao việc sửa đổi thuộc tính
prop
dường như làm cho thuộc tínhaction
đủ điều kiện, và ngược lại tại sao việc sửa đổi thuộc tính lại không? - Tại sao việc sửa đổi
prop
trong lại1)
sửa đổi thuộc tính, điều đó không có ý nghĩa đối với tôi? - Tại sao sửa đổi
attr
trong lại2)
sửa đổi thuộc tính, chúng có nghĩa là được liên kết theo cách đó?
Mã kiểm tra
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 />');