В версиях jQuery до 1.6:
$('input[name="correctAnswer"]').attr('checked', false);
В версиях jQuery после 1.6 вы должны использовать:
$('input[name="correctAnswer"]').prop('checked', false);
но если вы используете 1.6.1+, вы можете использовать первую форму (см. Примечание 2 ниже).
Примечание 1: важно, чтобы вторым аргументом было false , а не "false" , поскольку "false" не является ложное значение. т.е.
if ("false") {
alert("Truthy value. You will see an alert");
}
Примечание 2: Начиная с jQuery 1.6.0, теперь есть два похожих метода, .attr
и .prop
, которые выполняют две связанные, но немного разные вещи. Если в данном конкретном случае приведенный выше совет работает, если вы используете 1.6.1+. Выше не будет работать с 1.6.0, если вы используете 1.6.0, вы должны обновить. Если вам нужны подробности, продолжайте читать.
Подробности: При работе с прямыми HTML-элементами DOM к элементу DOM присоединяются свойства (checked
, type
, value
и т. Д.), Которые обеспечивают интерфейс к состоянию выполнения HTML-страницы. Существует также интерфейс .getAttribute
/ .setAttribute
, который обеспечивает доступ к значениям атрибута HTML, как предусмотрено в HTML. До 1.6 jQuery стирал различия, предоставляя один метод, .attr
, для доступа к обоим типам значений. jQuery 1.6+ предоставляет два метода, .attr
и .prop
, чтобы различать эти ситуации.
.prop
позволяет вам установить свойство для элемента DOM, в то время как .attr
позволяет вам установить значение атрибута HTML. Если вы работаете с обычным DOM и устанавливаете свойство selected, elem.checked
, на true
или false
, вы изменяете текущее значение (то, что видит пользователь), и возвращаемое значение отслеживает состояние страницы. elem.getAttribute('checked')
однако возвращает только начальное состояние (и возвращает 'checked'
или undefined
в зависимости от исходного состояния из HTML). В 1.6.1+ использование .attr('checked', false)
делает и elem.removeAttribute('checked')
, и elem.checked = false
, так как это изменение вызвало множество проблем обратной совместимости, и он не может точно определить, хотите ли вы установить атрибут HTML или свойство DOM. Дополнительную информацию смотрите в документации для .prop .