JQuery 1.6.2 проблема с использованием.prop() для проверенных и отключенных
Возможный дубликат:
.prop () против.attr()
Пожалуйста, взгляните на эту скрипку:
$("#test").prop({
checked: true,
disabled: true
});
$("#result").text($("#container").html());
Вы увидите вывод:
<input disabled="disabled" id="test" type="checkbox">
Это в FF 5. Почему он добавляет атрибут для отключенного, а не для проверенного? Я надеялся, что это будет делать оба последовательно.
РЕДАКТИРОВАТЬ:
Теперь я понимаю, что результат в каждом браузере совершенно другой.
Больше результатов:
IE6 / 7:
<INPUT id=test disabled type=checkbox CHECKED>
Chrome 13:
<input id="test" type="checkbox" disabled="">
IE8:
<INPUT id=test disabled type=checkbox>
2 ответа
Метод ".prop()" предназначен для установки / получения свойств на узлах DOM, а не для установки атрибутов. Таким образом, он не добавляет никаких атрибутов. То, что вы видите, это поведение кода "innerHTML" в Firefox 5, а не jQuery.
Если вы хотите работать с атрибутами HTML или XHTML (или независимо от того, откуда пришел ваш DOM), используйте ".attr()". Однако для большинства целей JavaScript, работающих с живым DOM, вы должны использовать ".prop()".
Вы должны использовать attr
вместо prop
Вот.
$("#test").attr({
checked: true,
disabled: true
});