Обход из Hashtags закладки (#bookmark) в jQuery? - PullRequest
0 голосов
/ 19 апреля 2010

У меня возникают проблемы при переходе от закладки, есть тег в 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>

Я пытаюсь перейти туда, где class = "title", если страница загружена с хэштегом закладки в 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()), я получу нулевой результат. Почему это так? Является ли nextAll неправильной функцией перемещения? (Я также попробовал следующий + найти безрезультатно)

Спасибо!

Ответы [ 2 ]

3 голосов
/ 01 сентября 2010

для этого есть плагин jquery: http://github.com/shanbady/Jquery-ajaxBookmarkable

2 голосов
/ 19 апреля 2010

Селектор $('#comment-1') выбирает элемент <a>. Метод next ищет следующий узел этого элемента. Нет такого узла с классом "title", поэтому вы получите пустой результат. В вашем примере единственным узлом <a> является div с class = "comment". Чтобы найти элемент <h2 class="title">, вы можете использовать, например ,::1006*

$(window.location.hash).next().children('.title')
...