또 다른되지 이제 이것은 어떤 차이 질문이다하는 것은 , 내가 한 몇 가지 테스트를 수행 (http://jsfiddle.net/ZC3Lf/) 개질 prop
과 attr
의 <form action="/test/"></form>
출력이 되 고 :
1) 소품 수정 테스트
소품 :http://fiddle.jshell.net/test/1
속성 :http://fiddle.jshell.net/test/1
2) 속성 수정 테스트
Prop :http://fiddle.jshell.net/test/1
Attr :/test/1
3) Attr의 다음 소유 수정 테스트
소유 :http://fiddle.jshell.net/test/11
Attr의 :http://fiddle.jshell.net/test/11
4) Prop then Attr 수정 테스트
Prop :http://fiddle.jshell.net/test/11
Attr :http://fiddle.jshell.net/test/11
이제 내 지식이있는 한 몇 가지에 대해 혼란스러워합니다.
Prop : JavaScript
Attr을 통해 수정 한 후 현재 상태 의 값 : 페이지로드시 html에 정의 된 값.
이제 이것이 맞다면
- 를 수정하면 정규화 되는
prop
것처럼 보이는action
이유와 반대로 속성을 수정하지 않는 이유는 무엇입니까? prop
in을1)
수정하면 속성 이 수정되는 이유는 무엇 입니까?attr
in을2)
수정하면 속성 이 수정되는 이유는 무엇 입니까?
테스트 코드
HTML
자바 스크립트
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 />');