Обратится к родительскому элементу в qjuery

Mxnrl

Постоялец
Заблокирован
Регистрация
29 Апр 2010
Сообщения
50
Реакции
1
  • Автор темы
  • Заблокирован
  • #1
Подскажите пожалуйста, есть хтмл-блок -
HTML:
<div class="rating">
<span class="rating_yes"><a class="addrate" href="#" name="{ID}">yes</a></span>
<div class="rating_image"><span class="rating_num">{RATING}</span></div>
<span class="rating_no"><a class="minusrate" href="#" name="{ID}">no</a></span>
</div>
и таких блоков на странице до 10 штук (к каждому посту рейтинг).
в js кидаю запрос, увеличиваю рейтинг у поста и получаю в ответе сколько сейчас голосов у этого поста -
HTML:
$('.addrate').click(function(){
		$.post("/rate.php", {
			state: "add", 
			id: $(this).attr('name')
		}, function(data) {
			if(data && data !=""){
				$('rating_num').html(data);
			}
		} );
		return false;
	});
внимательные уже наверное заметили - текст вставляется во все rating_num.
Вопрос - как мне изменить значение только в rating_num в котором находится блок с a class="addrate" на который кликнули? как я понимаю это что-то элементарное..
 
  • Автор темы
  • Заблокирован
  • #2
Все, решено. Если кому интересно - решил очень просто, добавил в
HTML:
<span class="rating_num" name="{ID}">
а потом в js обращался к элементу через
HTML:
$('span.rating_num[name="'+post_id+'"]').html(data);
 
Нужно указывать не name="{ID}" а id="{ID}" либо data-name="{ID}"
Вообщето можно было просто указать контекст/область для поиска, необходимого блока, как ты и хотел:
PHP:
var context = $(this).closest('div.rating'); // this - .addrate
 ...
$('span.rating_num', context).html(data);
 
Назад
Сверху