Я пытаюсь сделать простое приложение To Do в качестве назначения, в этом коде флажок создается при каждом нажатии кнопки, а счетчик отслеживает непроверенные флажки, поэтому я сделал простое выражение if-else.... если щелкнуть по полю, уменьшить счетчик без проверки и наоборот .. моя проблема с this
, здесь код, который я считаю логичным, поскольку validate()
уже является атрибутом флажка, который не должен проходить this
const aCheckbox = document.createElement("INPUT");
aCheckbox.setAttribute('type', 'checkbox');
aCheckbox.setAttribute('onclick', 'validate()');
function validate() {
if(this.checked) {
console.log('Checked');
}
}
Приведенный выше код не работает, я попробовал следующий код, и он работает, разница в том, что this
передается, когда validate()
вызывается при первом коде this
вызывается в validate()
, так почему первый код не работает, даже если функция вызывается внутри флажка?
const aCheckbox = document.createElement("INPUT");
aCheckbox.setAttribute('type', 'checkbox');
aCheckbox.setAttribute('onclick', 'validate(this)');
function validate(x){
if(x.checked){
console.log('Checked');
}
}