Если $target
предназначен для ссылки на элемент h6.class
, то вам следует изменить эту строку:
var $target = $(event.target);
к этому:
var $target = $(this);
$(event.target)
будет фактически ссылаться на любой элемент-потомок, по которому щелкнули Затем событие всплывает до элемента с обработчиком (h6.class
), на который ссылается $(this)
.
EDIT:
Если это похоже на ваш HTML, код работает отлично. Если (например) .child1
и .child2
вложены глубже внутрь h6.class
, то нам нужно немного изменить ситуацию.
<h6 class='class'>
<div class='child1'>this is child 1</div>
<div class='child2'>this is child 2</div>
</h6>
<div class="replaceHeader1">header1</div>
<div class="replaceHeader2">header2</div>
<div class="replaceHeader1">header1</div>
<div class="replaceHeader2">header2</div>
РЕДАКТИРОВАТЬ 2:
Учитывая размещенный вами HTML, попробуйте код ниже. Обратите внимание, что у вас, похоже, нет закрывающего тега для элемента <a href="#">
. Код ниже должен работать в любом случае.
$('h6.HeaderToBeClicked').click(function(event) {
var $target = $(this);
$('.replaceHeader1').text( $target.find(".child1").text() );
$('.replaceHeader2').text( $target.find(".child2").text() );
});
Предполагается, что вы просто меняете содержимое элементов .replaceHeader
. Если вам также нужно изменить имя тега, вам нужно вернуться к использованию replaceWith()
.