2014-12-10 2 views
-3

У меня есть этот код:Как изменить ярлык

<label ng-repeat="day in days"> 
    <input type="checkbox" ng-model="activityDays[$index]" /> {{day}} 
    <br /> 
</label> 

Как я могу изменить текст этикетки при проверке?

+1

для использования CSS это 'label' должны быть братьями и сестрами' input' –

+1

вы можете использовать что-то вроде этого [** скрипку **] (http://jsfiddle.net/ ykd8eo7o /) скрывать и показывать содержимое, когда ': checked' –

+0

Возможный дубликат [Есть ли родительский селектор CSS?] (http://stackoverflow.com/questions/1014861/is-there-a-css-parent-selector) –

ответ

0

Используя JavaScript, вы можете прокрутить дочерние элементы родителя input и изменить его .data, если его day.

var checkbox = document.querySelector('input[type=checkbox]'); 
 

 
checkbox.addEventListener('change', function() { 
 
    if (this.checked == true) { 
 
    for (i = 0; i < this.parentNode.childNodes.length; i++) { 
 
     if (this.parentNode.childNodes[i].data !== undefined) { 
 
     if (this.parentNode.childNodes[i].data.trim() == 'day') { 
 
      this.parentNode.childNodes[i].data = 'night' 
 
     } 
 
     } 
 
    } 
 
    } else { 
 
    for (i = 0; i < this.parentNode.childNodes.length; i++) { 
 
     if (this.parentNode.childNodes[i].data !== undefined) { 
 
     if (this.parentNode.childNodes[i].data.trim() == 'night') { 
 
      this.parentNode.childNodes[i].data = 'day' 
 
     } 
 
     } 
 
    } 
 
    } 
 
})
<label ng-repeat="day in days"> 
 
    <input type="checkbox" ng-model="activityDays[$index]" />day 
 
    <br /> 
 
</label>

Смежные вопросы