@asdqwee
Front-end developer

Как изменить значение у потомка при клике на родителя?

<button class="likebtn" onclick="like(this)"><span>12</span></button>
<button class="likebtn" onclick="like(this)"><span>4</span></button>
<button class="likebtn" onclick="like(this)"><span>18</span></button>
...


function like(elem){
			if (elem.style.backgroundImage.indexOf("img/like.png")>0) {
				elem.style.backgroundImage = "url(img/like1.png)";
                                // span ++
			}
			else{
				elem.style.backgroundImage = "url(img/like.png)";
                                // span --
			};
		
		}


При клике на кнопку меняется ее картинка, если кнопка уже была нажата, то возвращает ее первоначальный вид. Как сделать так, что-бы при клике на кнопку менялось значение только у потомка этой кнопки "span" ?

P.S. Кнопок много
  • Вопрос задан
  • 154 просмотра
Решения вопроса 1
@KnightForce
1) indexOf возвращает:
а) -1 - если не найдено,
б) 0 - на нулевой позиции,
в) Позицию.

2) Используй elem.chilren или elem.querySelectorAll.

3) Решение:
а) Если у тебя потомок только 1 span:
elem.children[0];

б) Если вложен во что-то, но также найдет и остальные span.
elem.elem.querySelectorAll("span")[0];

Раз у тебя вообще возникают такие вопросы, прочти этот учебник:

https://learn.javascript.ru/

Вопросы сами отпадут.)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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