Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Смена label по клике на checkbox (https://javascript.ru/forum/misc/65299-smena-label-po-klike-na-checkbox.html)

Batyabest 11.10.2016 15:33

Смена label по клике на checkbox
 
Добрый день.
Разметка такая:
<label id="srav">
    <input type="checkbox" value="1052" id="choiseFunc"/> Сравнить</label>


Подскажите как при смене состояния чекбокса сменить текст метки на "В сравнении"
Пишу так:
$(this).parent().text("В сравнении");

Но он тогда убирает и input, который обернут label'ом

ksa 11.10.2016 15:44

Цитата:

Сообщение от Batyabest
Подскажите как при смене состояния чекбокса сменить текст метки на "В сравнении"

Как вариант...
<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251' />
<script src='http://code.jquery.com/jquery-latest.js'></script>
<!--
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
-->
<style type='text/css'>
</style>
<script type='text/javascript'>
$(function(){
	$('#srav > :checkbox').click(function(){
		this.nextSibling.nodeValue=(this.checked)? ' В сравнении': ' Сравнить';
	});
});
</script>
</head>
<body>
<label id="srav">
    <input type="checkbox" value="1052" id="choiseFunc"/> Сравнить
</label>
</body>
</html>

Batyabest 11.10.2016 16:00

Люкс, все работает. Но при попытке интегрировать в мой код - не работает. У меня там еще скрипт обрабатывает это сравнение - как туда вставить Ваш код?
$('.text-cat .choice input').click(

    function()
    {
        if(!$(this).prop("checked"))
        {
            kol_srav--;
            length=$('.posl').length;
            for (var i = 0; i < length; i++) {
                if($(this).val()==$('.posl').eq(i).val())
                {
                    $('.posl').eq(i).val('');
                    $('.posl').eq(i).addClass('pust');
                    $('.posl').eq(i).removeClass('posl');
                    break;
                }
            };

        }
        else
        {
            if(kol_srav>=4)
            {
                alert('Нельзя сравнить более 4 товаров.');
            }
            else
            {
                kol_srav++;
                $('.pust').eq(0).val($(this).val());
                $('.pust').eq(0).addClass('posl');
                $('.pust').eq(0).removeClass('pust');
            }


        }
        console.log(kol_srav);
		
});

рони 11.10.2016 16:01

Batyabest,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  #choiseFunc+ span:after{

    margin-left: 8px;
    content:  "Сравнить" ;
  }
  #choiseFunc:checked + span:after{
    content:  "В сравнении";

  }


  </style>

</head>

<body>

<label id="srav">


    <input type="checkbox" value="1052" id="choiseFunc"/><span></span></label>


</body>
</html>

Batyabest 11.10.2016 16:26

рони, вот у меня была мысль так сделать, о я ее не довел до ума))
Спасибо огромное - работает как нужно!


Часовой пояс GMT +3, время: 04:29.