Basado en el código HTML siguiente (tenga en cuenta que tenía que envolver el li
con la ul
, ya que un regalo sin envolver li
es inválida HTML):
<ul>
<li>
<h2>400</h2>
<form>
<input type='submit' class='click' value='send'>
</form>
</li>
</ul>
Y la siguiente jQuery:
$('.click').click(function(){
$(this).parent('li').closest('h4').html('asdasd');
});
Parece que está tratando de encontrar la h4
dentro del li
. Los problemas que tiene son múltiples:
- El uso de
parent()
solo busca el elemento principal inmediato del elemento actual; closest()
utilizar en su lugar, para buscar a través de los antepasados hasta que encuentra un elemento coincidente,
closest()
(como se mencionó) mira hacia arriba a través de los elementos antecesores, mientras que usted está tratando de encontrar un elemento entre los descendientes de la li
elemento. Use find()
,
- Usted busca un elemento
h4
, que no existe. Necesitabas (supongo) encontrar el h2
que estaba presente en el DOM.
Así:
$('.click').click(function(){
$(this).closest('li').find('h2').html('asdasd');
});
JS Fiddle demo.
Referencias:
¿Qué elemento? ¿Y qué hacer con eso? Muestre su código ** aquí **, JS Fiddle es un buen extra, pero sus preguntas deberían tener sentido y conservar su utilidad, sin depender de sitios externos. –
Creo que quiso utilizar 'h2' como el parámetro para el más cercano() – Christian
'$ (this) .closest ('li'). Find ('h2')'? – zerkms