со следующим html
<ul id="accordion">
<li>
<ul>
<li><h3>title</h3></li>
</ul>
</li>
<li>
<ul>
<li><h3>title</h3></li>
</ul>
</li>
<li>
<ul>
<li><h3>title</h3></li>
</ul>
</li>
</ul>
У меня внешний ul хранится в переменной
var acc = $("#accordion")[0]
в общем случае я только что передал элемент DOM и не могу обязательно указать селектор
Когда нажимается h3, я хочу получить верхний уровень li, который его содержит. В общем случае может быть любая разметка между аккордеоном ul и элементом, который я хочу получить, и между элементом, который нужно выбрать, и h3 ... но у меня будет селектор, который Позволяет мне добраться до элемента из аккордеона с помощью селектора ">".
например. var items = $ ("> li", acc);
Проблема в том, что когда я начинаю с h3, на который нажали («this» внутри обработчика щелчка), трудно найти конкретный элемент.
$(this).closest(">li", acc);
возвращает пустой jQuery (может быть, ошибка? Хотя трудно определить, что означает ">" в этом случае, когда элемент верхнего уровня является динамическим)
$(this).parents(">li")
не позволяет устанавливать контекст, поэтому потенциально может вернуть слишком много элементов
Есть ли способ сделать то, что я хочу?
* edit: html теперь делает проблему яснее