Considera la estructura de mi elemento

<a href="#" class="close">X</a>
<div class="container">Lorem ipsum</div>

Ahora, al hacer clic en la etiqueta de anclaje, necesito ocultar ambos elementos,

$('body').on('click', '.close', function(){
  $(this).hide();
  $('.container').hide();
});

¿Cómo encadeno las dos declaraciones hide() en una?

2
Gibin Ealias 26 feb. 2018 a las 13:46

3 respuestas

La mejor respuesta

No, no puedes, ya que los selectores son diferentes. Solo puede encadenar si está operando en el mismo elemento de selección.

Sin embargo, si desea minimizar la línea, puede considerar agruparlos en lugar de encadenarlos usando add ().

$(this).add('.container').hide();

O

$('.container').add(this).hide();
3
Suresh Atta 26 feb. 2018 a las 10:55

Puede usar add() para combinar múltiples selectores en un solo objeto jQuery:

$('body').on('click', '.close', function() {
  $(this).add('.container').hide();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<a href="#" class="close">X</a>
<div class="container">Lorem ipsum</div>
6
Rory McCrossan 26 feb. 2018 a las 10:48

Puedes usar lo siguiente

$('body').on('click', '.close', function(){
    $(".close, .container").hide();
});
1
DuW 26 feb. 2018 a las 10:56