.closest .prev jquery не работает, чтобы сосредоточиться на теге A выше

#jquery #css

#jquery #css

Вопрос:

Не уверен, почему это не работает, но у меня есть:

https://jsfiddle.net/m9uqdx5y/

 <div class="sectionContent">
  <span class="open"><a>top</a></span>
  <span class="closeEditorLink"><a>bottom</a></span>
</div>

    var $preDiv = $('.closeEditorLink');
    $($preDiv).click(function () {
        $($preDiv).closest('.sectionContent a').focus();
    });
  

Мне просто нужно сосредоточиться на этом теге A выше.

Комментарии:

1. у вас нет привязки к классу closeEditorLink , это span

2. даже если я уберу это, это все равно не сработает

3. Ваш $preDiv объект уже является объектом jquery, поэтому вам не нужно $($preDiv) , просто $preDiv.click $preDiv.closest , и т.д.

Ответ №1:

.closeEditorLink не является дочерним элементом .sectionContent a , поэтому .closest(".sectionContent a") ничего не получается.

Попробуйте .closest('.sectionContent').find('.open a').focus(); вместо этого.

Ответ №2:

Попробуйте изменить свой код javascript следующим образом:

Jquery:

 var preDiv = $('.closeEditorLink');
preDiv.on('click', function () {
    $(this).closest('.sectionContent a').focus();
});
  

или

 $(document).on('click', '.closeEditorLink', function() {
    $(this).parent().closest('a').focus();
});
  

С уважением!

Ответ №3:

Напишите, как показано ниже

 jQuery(document).ready(function($){
 var preDiv = $('.closeEditorLink');
  $(preDiv).click(function () {
     $($preDiv).closest('.sectionContent').find('a').focus();
  });
})