質問

私はブックマークからのトラバーニングに問題を抱えています。具体的には、次の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>

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() )ヌルの結果が得られます。なぜそうなの?次のすべては正しいトラバース機能ではありませんか? (私はまた、次の+検索を試みました+役に立たない)

ありがとう!

役に立ちましたか?

解決

$('#comment-1') セレクターはを選択します <a> エレメント。 next メソッドその要素の次の兄弟ノードを調べます。 「タイトル」のクラスを持つこのようなノードはないので、空の結果が得られます。あなたの例では、の唯一の兄弟ノード <a> class = "comment"のdivです。を見つける <h2 class="title"> 要素、あなたは次のことを使用できます:

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

他のヒント

そのためのjQueryプラグインがあります: http://github.com/shanbady/jquery-ajaxbookmarkable

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top