Как удалить id='position' в елемента в которого класс showing (класс showing меняется по очереди)

207
03 марта 2018, 21:57
    <li id="position1" class="slide showing"></li>
    <li id="position2" class="slide"></li>
    <li id="position3" class="slide"></li>

var controls = document.querySelectorAll('.controls');
for(var i=0; i<controls.length; i++){
    controls[i].style.display = 'inline-block';
}
var slides = document.querySelectorAll('#slides .slide');
var currentSlide = 0;
var slideInterval = setInterval(nextSlide,2000);
function nextSlide(){
    goToSlide(currentSlide+1);
}
function previousSlide(){
    goToSlide(currentSlide-1);
}
function goToSlide(n){
    slides[currentSlide].className = 'slide';
    currentSlide = (n+slides.length)%slides.length;
    slides[currentSlide].className = 'slide showing';
}
var playing = true;
var pauseButton = document.getElementById('pause');
function pauseSlideshow(){
    pauseButton.innerHTML = '&#9658;'; // play character
    playing = false;
    clearInterval(slideInterval);
}
function playSlideshow(){
    pauseButton.innerHTML = '&#10074;&#10074;'; // pause character
    playing = true;
    slideInterval = setInterval(nextSlide,2000);
}
pauseButton.onclick = function(){
    if(playing){ pauseSlideshow(); }
    else{ playSlideshow(); }
};
var next = document.getElementById('next');
var previous = document.getElementById('previous');
next.onclick = function(){`введите сюда код`
    pauseSlideshow();
    nextSlide();
};
previous.onclick = function(){
    pauseSlideshow();
    previousSlide();
};
Answer 1

Задачу решает функция addRemoveId(), остальное для примера

// Тут для примера реализованно  изменения по клику 
const slide = document.getElementsByClassName('slide'); 
// Все что нужно, это запускать функцию addRemoveId() для проверки наличия  
//class showing у данного узла и удлаения у данного узла ID 
function addRemoveId() { 
 
  for (let i = 0; i < slide.length; i++) { 
    if (slide[i].classList.contains('showing')) { 
      slide[i].id = '' 
    } else { 
 
      slide[i].id = 'position' + (i + 1); 
    } 
  } 
} 
 
 
for (let i = 0; i < slide.length; i++) { 
  slide[i].addEventListener('click', function() { 
    for (let i = 0; i < slide.length; i++) { 
      slide[i].classList.remove('showing'); 
    } 
    slide[i].classList.add('showing'); 
    addRemoveId(); 
  }) 
}
.slide { 
  margin: 2px; 
  width: 100px; 
  height: 100px; 
  background: red; 
  color: white; 
} 
 
.showing { 
  color: green; 
} 
 
#position1, 
#position2, 
#position3 { 
  font-size: 25px; 
}
<li id="position1" class="slide showing">Slide1</li> 
<li id="position2" class="slide">Slide2</li> 
<li id="position3" class="slide">Slide3</li>

READ ALSO
Шахматная доска, по книге &ldquo;Выразительный JavaScript&rdquo;

Шахматная доска, по книге “Выразительный JavaScript”

Условия самой задачиЕдинственное что у меня не получается, это сделать через одну строку крайний левый пробел

166
Как понять отправку сообщения в ООП?

Как понять отправку сообщения в ООП?

Здравствуйте! На данный момент изучаю ООП и столкнулся с непониманием фразы "отправка сообщения"

155
Kartik Editable + Popover дополнительный функционал

Kartik Editable + Popover дополнительный функционал

Подскажите пожалуйста как реализовать такой функционал, есть табличка (kartik gridview) с редактируемыми полями (editable) одно из полей - комментарий,...

148