@drtvader
Вечный студент

Почему не работает $(this).parents?

$('.b-rewiews__answer-no').click(function() {
    $(this).parents('.b-rewiews__number-red').html($('.b-rewiews__number-red').html()+1);
});


Почему при клике не срабатывает? Что неправильно?
  • Вопрос задан
  • 225 просмотров
Решения вопроса 1
@maniii
Может так
$('.b-rewiews__answer-no').click(function() {
  $('.b-rewiews__number-red').html(Number($(this).closest('.b-rewiews__rewiew-answer').find('.b-rewiews__number-red').text())+1);
});
//or
$('.b-rewiews__answer-no').click(function() {
var par = $(this).closest('.b-rewiews__rewiew-answer');
var child = par.find('.b-rewiews__number-red').text();
par.find('.b-rewiews__number-red').html(Number(child)+1);
});

Если я конечно правильно понял
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Immortal_pony
@Immortal_pony Куратор тега JavaScript
Элемента с классом "b-rewiews__number-red" нет среди родительских элементов класса "b-rewiews__answer-no".
Срабатывать будет, если искать на одном уровне например:

$('.b-rewiews__answer-no').click(function() {
    var previousValue =  Number($('.b-rewiews__number-red').html());

    $(this).siblings('.b-rewiews__number-red').html(' ' + (previousValue+1));
});


PS Для того, чтобы выполнить сложение, а не конкатенацию строк необходимо, чтобы все участники операции были необходимого типа.
Ответ написан
sergski
@sergski
web-developer
$('.b-rewiews__answer-no').on("click", function() {	
    	var d = $(".b-rewiews__number-red" ).html();
    	d = Number(d);
    	$('.b-rewiews__number-red').html(++d);
	});
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы