Come posso escludere $ (questo) da un selettore jQuery?
-
22-07-2019 - |
Domanda
Ho qualcosa del genere:
<div class="content">
<a href="#">A</a>
</div>
<div class="content">
<a href="#">B</a>
</div>
<div class="content">
<a href="#">C</a>
</div>
Quando si fa clic su uno di questi collegamenti, desidero eseguire la funzione .hide () sui collegamenti a cui non si fa clic. Capisco che jQuery abbia il selettore: not, ma non riesco a capire come usarlo in questo caso perché è necessario selezionare i collegamenti usando $ (" .content a ")
Voglio fare qualcosa del genere
$(".content a").click(function()
{
$(".content a:not(this)").hide("slow");
});
ma non riesco a capire come usare il selettore: not in questo caso.
Soluzione
Prova a utilizzare il not ()
metodo invece del : not ()
selettore .
$(".content a").click(function() {
$(".content a").not(this).hide("slow");
});
Altri suggerimenti
Puoi anche usare il metodo jQuery .siblings ()
:
HTML
<div class="content">
<a href="#">A</a>
<a href="#">B</a>
<a href="#">C</a>
</div>
JavaScript
$(".content").on('click', 'a', function(e) {
e.preventDefault();
$(this).siblings().hide('slow');
});
Demo funzionante: http://jsfiddle.net/wTm5f/
Dovresti utilizzare il " siblings () " e impedire l'esecuzione del " .content a " selettore ancora e ancora solo per applicare quell'effetto:
HTML
<div class="content">
<a href="#">A</a>
</div>
<div class="content">
<a href="#">B</a>
</div>
<div class="content">
<a href="#">C</a>
</div>
CSS
.content {
background-color:red;
margin:10px;
}
.content.other {
background-color:yellow;
}
JavaScript
$(".content a").click(function() {
var current = $(this).parent();
current.removeClass('other')
.siblings()
.addClass('other');
});
Vedi qui: http://jsfiddle.net/3bzLV/1/