Так как элемент .display-link
, который вы хотите отобразить, не является родным братом или предком флажка, вы не можете сделать это за один шаг. Сначала перейдите к элементу .collapsible
, который является родственным элементом .accordion-button
, затем возьмите предыдущий элемент, который является .accordion-button
, и найдите внутри него элемент .display-link
:
$(":checkbox").click(function() {
$(this).closest(".collapsible").prev().find("display-link").show();
});
Метод closest
просматривает только элементы-предки, как и parents
. Метод prevUntil
рассматривает только предшествующих братьев и сестер.
Обратите внимание, что приведенное выше будет работать только в том случае, если ваша структура останется такой, как в вопросе. Если вы добавляете элементы в местах, которые могут повлиять на приведенный выше код, вам придется соответствующим образом изменить его. Вы можете сделать его более надежным, если считаете, что DOM может измениться:
$(this).closest(".collapsible").prevAll(".accordion-button:first").find(".display-link").show();