JQuery 1.6.2 проблема с использованием.prop() для проверенных и отключенных

Возможный дубликат:
.prop () против.attr()

Пожалуйста, взгляните на эту скрипку:

http://jsfiddle.net/DGzvP/

$("#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
});
Другие вопросы по тегам