jQueryのブックマークハッシュタグ(#BookMark)からのトラバーニング?
-
27-09-2019 - |
質問
私はブックマークからのトラバーニングに問題を抱えています。具体的には、次の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
所属していません StackOverflow