mrusklon
@mrusklon
Не получается? Яростно гугли!

Как правильно применить тут this?

function setVal() {
        if ($('input#check1').is(':checked')) {
            $('input#check1').val('отмечено');
        }
        else {
            $('input#check1').val('не отмечено');
        }
    }

если поставлю $(this) вместо $('input#check1') и выведу в консоль то будет object , а не true или false что по моему пониманию логично , почему так и как правильно?
  • Вопрос задан
  • 133 просмотра
Пригласить эксперта
Ответы на вопрос 2
iiiBird
@iiiBird
Пока ты спишь - твой конкурент совершенствуется
ты должен в функцию передавать элемент
function setVal(el) {
        if (el.is(':checked')) {
            el.val('отмечено');
        }
        else {
            el.val('не отмечено');
        }
    }

setVal($('input#check1')); //передавать так
либо
setVal($(this)); //если вызываешь изнутри другой функции
Ответ написан
Комментировать
@kulaeff
Front-end developer
Здесь не нужен this.

function setVal() {
  var $input = $('input#check1');

  if ($input).is(':checked')) {
    $input.val('отмечено');
  }
  else {
    $input.val('не отмечено');
  }
}


А еще лучше так:
function setVal() {
  var $input = $('input#check1');

  $input.val(($input).is(':checked') ? 'отмечено': 'не отмечено');
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы