按动态类选择元素

Joh*_*ohn 2 jquery

我有几个像这样的链接,里面有一个动态数字.我想将子跨度的类从橙色更改为红色.这是链接:

<a id="details_104" href="#"><span class="status orange"></span></a>
<a id="details_105" href="#"><span class="status orange"></span></a>
<a id="details_106" href="#"><span class="status orange"></span></a>
Run Code Online (Sandbox Code Playgroud)

我试着通过使用这个jQuery代码来做到这一点:

$("a #details_" + employee_id).removeClass("orange");
$("a #details_" + employee_id).addClass("red");
Run Code Online (Sandbox Code Playgroud)

变量employee_id填充了正确的值,但我没有看到任何事情发生.我在这做错了什么?谢谢!

Ale*_*yne 5

$("a#details_" + employee_id + ' span.status').removeClass("orange");
$("a#details_" + employee_id + ' span.status').addClass("red");
Run Code Online (Sandbox Code Playgroud)

您正在选择a标记,而不是您的orange类实际所在的范围.添加span.status到选择器的末尾会找到具有您的员工ID的链接,然后在其中查找范围.现在removeClass()addClass()上操作span.


此外,这可以链接,因为jQuery很棒.

$("a#details_" + employee_id + ' span.status')
    .removeClass("orange").addClass("red");
Run Code Online (Sandbox Code Playgroud)

这也更快,因为它只对DOM运行一次选择器.