Question

J'ai du code comme ceci:

<p>Lorem ipsum<a href=# class="a">link</a><span class="b">Text</span>More lorem ipsum<a href=# class="a">link</a><span class="b">Text 2</span>

Et j'aimerais laisser les utilisateurs cliquer sur link et pouvoir faire quelque chose avec la travée (faites-le flasher, cachez-le, peu importe). J'utilise jQuery, et c'est ce que j'ai jusqu'à présent:

$('.a').click(function() {
    $(this).nextUntil('.a').css('background-color', 'red');
 });

Cela fonctionne tant que je suis diligent pour avoir des liens avant les travées, et aucun autre code dans le texte. Cependant, je n'en suis pas satisfait, et il doit y avoir une meilleure façon. J'ai aussi essayé:

$('.a').click(function() {
    $(this).next('.b').css('background-color', 'red');
 });

Mais cela sélectionne toutes les travées de classe b, donc pas bon.

Je suis nouveau et à perte. Je cherche la sagesse.

Était-ce utile?

La solution

$('a.a').click(function() {
    $(this).next('span.b').css('background-color', 'red');
 });

devrait fonctionner bien pour vous. Il obtient le frère immédiatement suivant.

Autres conseils

Peut-être pourriez-vous essayer ça?

$(".a").click(function() {
    $(this).addClass("something_special");
    $(".something_special + .b").css({backgroundColor: "red"});
    $(this).removeClass("something_special");
});
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top