ตอนนี้ไม่ใช่แค่อีกคำถามความแตกต่างคืออะไรฉันได้ทำการทดสอบบางอย่าง (http://jsfiddle.net/ZC3Lf/) เพื่อแก้ไขprop
และattr
ของ<form action="/test/"></form>
ผลลัพธ์คือ:
1) prop Modification test
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 แล้ว Prop Modification test
Prop:http://fiddle.jshell.net/test/11
Attr:http://fiddle.jshell.net/test/11
4) Prop แล้ว Attr Modification test
Prop:http://fiddle.jshell.net/test/11
Attr:http://fiddle.jshell.net/test/11
ตอนนี้ฉันสับสนเกี่ยวกับสองสิ่งเท่าที่ความรู้ของฉันไป:
Prop:ค่าในสถานะปัจจุบันหลังจากการแก้ไขใด ๆ ผ่าน JavaScript
Attr:ค่าตามที่กำหนดไว้ใน html ในการโหลดหน้า
ทีนี้ถ้าถูกต้อง
- เหตุใดการปรับเปลี่ยนจึง
prop
ดูเหมือนจะทำให้action
มีคุณสมบัติครบถ้วนและในทางกลับกันเหตุใดการปรับเปลี่ยนแอตทริบิวต์จึงไม่ - เหตุใดการแก้ไข
prop
ในการ1)
แก้ไขแอตทริบิวต์จึงไม่มีเหตุผลสำหรับฉัน - เหตุใดการปรับเปลี่ยน
attr
ในการ2)
ปรับเปลี่ยนคุณสมบัติจึงควรเชื่อมโยงในลักษณะนั้นหรือไม่
รหัสทดสอบ
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 />');