Ответ 1
$(this).siblings('span').text('Suprise!');
Просто быстрый пример:
<p>
<span class="example"></span>
<input type="text" name="e_name" id="e_id />
</p>
<script type="text/javascript">
$('input').click(function(){
$(this).parent().children('span').text('Suprise!');
}
</script>
Что я могу использовать вместо parent(). children()?
Я думаю, что это немного неэлегантная часть кода. Любая функция i.e: $(this).fun('span'). Text ('just better');??
$(this).siblings('span').text('Suprise!');
$(this).siblings('span').text('Surprise!');
Был бы эквивалент без прохождения DOM, а затем назад (я имею ввиду, он все еще делает это, но по крайней мере вы не делаете это вручную).
Чуть более элегантный .prev()
$(this).prev('span').text('Surprise!');
вы можете узнать об этом подробнее: Prev
изменить: прочитать разметку назад, prev лучше, а не дальше.
$("span.example",$(this).parent()).text('Suprise!');
попробуйте следующее:
$(this).prev('span').text('Surprise!');