Question

J'ai du mal d'un déplacement signet a balise dans jquery. Plus précisément, le code HTML suivant:

<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>

Je suis en train de traverser à l'endroit où la classe = « title », si la page est débarqué avec un hashtag de signet dans l'URL (site.com/test.html#comment-1). Ce qui suit est mon code que je utilise pour le test:

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

Il exécute bien et renvoie le code HTML approprié (<h2 class="title"><a href="#co...)

Le problème est de savoir si j'ajoute un sélecteur à lui ($(window.location.hash).next('.title').html()) Je reçois un résultat nul. Pourquoi cela est-il ainsi? nextAll n'est pas la fonction correcte Traversant? (Je l'ai aussi essayé trouver la prochaine + sans résultat)

Merci!

Était-ce utile?

La solution

Le sélecteur de $('#comment-1') sélectionne l'élément de <a>. La méthode de next regarde le nœud frère suivant de cet élément. Il n'y a pas de tel noeud avec une classe de « titre », de sorte que vous obtenez un résultat vide. Dans votre exemple, le seul noeud entre frères et soeurs de <a> est la div class = « commentaire ». Pour trouver l'élément <h2 class="title">, vous pouvez utiliser par exemple:.

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

Autres conseils

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top