Pregunta

Estoy teniendo problemas de desplazamiento de una señal tiene la etiqueta en jQuery. Específicamente, el código HTML siguiente:

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

Estoy intentando transversal para que la clase = "título", si la página se aterrizó con un hashtag marcador en la URL (site.com/test.html#comment-1). El siguiente es el código que estoy usando para la prueba:

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

Se ejecuta bien, y devuelve el HTML adecuado (<h2 class="title"><a href="#co...)

El problema es si añado un selector a la misma ($(window.location.hash).next('.title').html()) consigo un resultado nulo. ¿Por qué esto es tan? Es nextAll no la función de desplazamiento correcto? (También he intentado próximo + hallazgo fue en vano)

Gracias!

¿Fue útil?

Solución

El selector $('#comment-1') selecciona el elemento <a>. El método next mira al otro nodo del mismo de ese elemento. No existe tal nodo con una clase de "título", por lo que obtener un resultado vacío. En su ejemplo, el nodo único hermano de <a> es el div con la clase = "comentario". Para encontrar el elemento <h2 class="title">, se puede utilizar por ejemplo:.

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

Otros consejos

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top