选择类的第一个元素&x27;x';在与jQuery链接之后

选择类的第一个元素&x27;x';在与jQuery链接之后,jquery,jquery-selectors,jquery-traversing,Jquery,Jquery Selectors,Jquery Traversing,我有一些这样的代码: <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> 只要我努力在跨距之前有链接,并且文本中没有其他代码,这就行了。然而,我对它不满意,

我有一些这样的代码:

<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>
只要我努力在跨距之前有链接,并且文本中没有其他代码,这就行了。然而,我对它不满意,必须有更好的方法。我也试过:

$('.a').click(function() {
    $(this).next('.b').css('background-color', 'red');
 });
但是,这会选择类
b
的所有跨度,所以这并不好

我是新来的,不知所措。我寻求智慧

$('a.a').click(function() {
    $(this).next('span.b').css('background-color', 'red');
 });
对你来说应该很好。它得到紧随其后的兄弟姐妹


对你来说应该很好。它会得到紧随其后的兄弟姐妹。

也许你可以试试这个

$(".a").click(function() {
    $(this).addClass("something_special");
    $(".something_special + .b").css({backgroundColor: "red"});
    $(this).removeClass("something_special");
});

也许你可以试试这个

$(".a").click(function() {
    $(this).addClass("something_special");
    $(".something_special + .b").css({backgroundColor: "red"});
    $(this).removeClass("something_special");
});

您的第二个代码段(
$(this).next('.b').css('background-color','red');
)应该只返回一个兄弟,而不是所有的
span
s.Yep,不知道我以前在做什么。也许这是一个“固定的转录”更正。您的第二个代码片段(
$(this).next('b').css('background-color','red');
)应该只返回一个兄弟,而不是所有的
span
s.Yep,不知道我以前在做什么。也许这是一个“固定的转录”更正。事实上,它就是这样做的。不知道为什么我以前在这方面有这么多麻烦。谢谢事实上,它正是这样做的。不知道为什么我以前在这方面有这么多麻烦。谢谢