11550 sujets

JavaScript, DOM et API Web HTML5

Bonjour,
Est-ce qu'il existe un moyen de cibler, disons, l'inverse de "this".

Exemple :


<ul>
<li>blablabla</li>
<li>blablabla</li>
<li>blablabla</li>
<li>blablabla</li>
</ul>


Quand je click sur un élément de liste, je peux déclencher qquechose sur cet élément :

$('li').click(function() {
$(this).addClass('bidule')
});


Et bien je souhaiterais une formule qui, suite à mon click, affecte tous les autres éléments li.

Merci pour votre aide.

PS : pour le moment j'y arrive, mais avec une formule rébarbative, type "si j'appuie sur le second élément, cela va affecter le premier élément, le troisième élément, le quatrième élément, etc. Je voudrais qquechose de plus simple, juste préciser "les autres".
Salut,

"L'inverse de this" dans quel contexte ? S'il s'agit de tous les "frères et soeurs" de this comme dans ton exemple, il suffit d'utiliser siblings :
$('li').click(function() { 
  $(this).siblings().addClass('bidule');
});

Sinon, plus généralement, pour enlever un élément d'un ensemble :
$('li').click(function() { 
  $('li').not(this).addClass('bidule');
});

Modifié par Julien Royer (13 Aug 2010 - 12:49)
Merci, c'est exactement ce dont j'avais besoin ! (surtout la fonction "not", super puissante)