Теперь это не просто еще один вопрос В чем разница. Я http://jsfiddle.net/ZC3Lf/ изменяя prop
и attr
из <form action="/test/"></form>
, на выходе:
1) Тест модификации опоры
Опора:http://fiddle.jshell.net/test/1
Атрибут:http://fiddle.jshell.net/test/1
2) Тест модификации Attr
Prop:http://fiddle.jshell.net/test/1
Attr:/test/1
3) Атрибут, затем тест модификации опоры
Опора:http://fiddle.jshell.net/test/11
Атрибут:http://fiddle.jshell.net/test/11
4) Пропорция, затем проверка модификации атрибута
Проповедь:http://fiddle.jshell.net/test/11
Атрибут:http://fiddle.jshell.net/test/11
Насколько мне известно, меня смущает пара вещей:
Опора: Значение в его текущем состоянии после любых изменений с помощью JavaScript
Attr: strong> Значение, определенное в 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 />');