Пересадка из закладки Hashtags (#bookmark) в jQuery?
-
27-09-2019 - |
Вопрос
У меня проблемы с прохождением из закладки имеет тег в jQuery. В частности, следующий HTML:
<a id="comment-1"></a>
<div class="comment">
<h2 class="title"><a href="#comment-1">1st Post</a></h2>
<div class="content">
<p>this is 1st reply to the original post</p>
</div>
<div class="test">1st post second line</div>
</div>
Я пытаюсь пройти туда, где класс = «название», если на странице приземлится с закладкой HASHTAG в URL (Site.com/test.html#Comment-1). Ниже приведен мой код, который я использую для тестирования:
if(window.location.hash) {
alert ($(window.location.hash).nextAll().html());
}
Он выполняет хорошо, и возвращает соответствующий HTML (<h2 class="title"><a href="#co...
)
Проблема в том, что если я добавляю селектор к нему ($(window.location.hash).next('.title').html()
) Я получаю нулевой результат. Почему это так? Nextill не является правильной функцией прохождения? (Я также попробовал следующий + Найти безрезультатно)
Спасибо!
Решение
То $('#comment-1')
Селектор выбирает <a>
элемент. То next
Метод смотрит на следующий серый узел этого элемента. Такого узла нет класса «Название», поэтому вы получаете пустой результат. В вашем примере единственный родной узел <a>
это div с классом = "комментарий". Найти <h2 class="title">
Элемент, вы можете использовать, например:
$(window.location.hash).next().children('.title')
Другие советы
Для этого есть плагин jQuery: http://github.com/shanbady/jquery-ajaxbookmarkmable