0

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>

URL (site.com/test.html#comment-1) にブックマーク ハッシュタグを使用してページが表示された場合、class = "title" の場所にトラバースしようとしています。以下は、テストに使用しているコードです。

if(window.location.hash) {
alert ($(window.location.hash).nextAll().html());
}

正常に実行され、適切な html ( <h2 class="title"><a href="#co...)が返されます。

問題は、セレクターを追加すると ( $(window.location.hash).next('.title').html()) null の結果が得られることです。これはなぜですか?nextAll は正しい Traversing 関数ではありませんか? (私も試してみました next+find 無駄に)

ありがとう!

4

2 に答える 2

3

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

于 2010-08-31T22:14:00.600 に答える
2

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

$(window.location.hash).next().children('.title')
于 2010-04-19T01:33:34.773 に答える