$("input").attr("disabled", true);
станом на ... я більше не знаю.
Настав грудень 2013 року, і я справді не маю уявлення, що тобі сказати.
Спочатку це було завжди .attr()
, потім було завжди .prop()
, тому я повернувся сюди, оновив відповідь і зробив її більш точною.
Потім через рік jQuery знову передумав, і я навіть не хочу цього слідкувати.
Короткий виклад короткої історії, на даний момент це найкраща відповідь: "Ви можете використовувати і те, і інше ... але це залежить".
Натомість слід прочитати цю відповідь: https://stackoverflow.com/a/5876747/257493
І їх нотатки до випуску для цієї зміни включені тут:
Ні .attr (), ні .prop () не повинні використовуватися для отримання / встановлення значення. Використовуйте натомість метод .val () (хоча використання .attr ("значення", "деяке значення") буде продовжувати працювати, як це було раніше 1.6).
Підсумок кращого використання
Метод .prop () слід використовувати для булевих атрибутів / властивостей та для властивостей, які не існують у html (наприклад, window.location). Усі інші атрибути (ті, які ви можете побачити в html) можуть і повинні продовжувати маніпулювати методом .attr ().
Або іншими словами:
".prop = речі без документа"
".attr" = документи
... ...
Нехай ми всі тут засвоїмо урок про стабільність API ...