mk3mk
@mk3mk
занимаюсь вёрсткой (иногда)

Как изменить текст label checkbox'a с помощью JavaScript?

Здравствуйте! У меня не получается изменить текст около чекбокса. По умолчанию там написан текст "В избранное". А при нажатии на чекбокс текст должен поменяться на "В избранном". И что я только не делал! И this ставил, и id элемента, и много всего пробовал, никак не получается... если можно подскажите кто-нибудь !
Вот ссылка на Codepen: https://codepen.io/mk3mk/pen/YdMyoY
  • Вопрос задан
  • 1241 просмотр
Решения вопроса 1
@lb-web
https://codepen.io/anon/pen/KbYVJg
Во-первых у вас текст пытается меняться там где его нету, т.к. текст в label, а вы обращаетесь к input на который нажали.
Во-вторых если вы будете менять текст у label, то и input пропадет, поэтому я добавил span
В третьих - есть более адекватные проверки на cheked, которую я добавил
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@flighter7
Как уже сказали выше, у вас идет обращение к чекбоксу, а не к label + при обращении label.text исчезнет и чекбокс. Вот один из не лучших вариантов решения

$('#favourites_flag').change(function()
{
       var checkbox = $(this),
           label = $('#favourites_flag_label'),
           tyu = $('#tyu');
    if (!checkbox.is(':checked')) {
        label.get(0).lastChild.nodeValue = 'В избранное';
        tyu.css({'background':'green'});
    } else {
        label.get(0).lastChild.nodeValue = 'В избранном';
        tyu.css({'background':'gold'});
    };
});
Ответ написан
@deniz1983
...
$(this).parent(“label”).text(“в избранном”);
Ответ написан
Ваш ответ на вопрос

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

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