改变跨度的类

时间:2012-03-02 07:44:31

标签: jquery-ui jquery

我有两个div如下,我想从div top2更改span s1的类名。但是以下代码不起作用。我怎么能这样做?


$('#top1 #s1 span.myclass-old').toggleClass('myclass-new');

<div id="top1">
   <span id="s1" class="myclass">a</span>
   <span id="s2" class="myclass">b</span>
</div>

<div id="top2">
   <span id="s1" class="myclass-old">a</span>
   <span id="s2" class="myclass">b</span>
</div>

5 个答案:

答案 0 :(得分:4)

如果你想把你的课程从'class-old'改为'class-new',试试这段代码:

$('#top1 #s1.myclass-old').removeClass('myclass-old').addClass('myclass-new');

答案 1 :(得分:1)

使用此$('#top1 #s1').attr('class', 'myclass-new');​​

http://jsfiddle.net/blackpla9ue/tBLFt/

使用toggleClass只会在拥有现有myclass-new时为您的范围添加/删除myclass

答案 2 :(得分:0)

('#top1 > #s1').toggleClass('myclass-new');

child selector

答案 3 :(得分:0)

您的选择器$('#top1 #s1 span.myclass-old').toggleClass('myclass-new');将搜索ID为&#39; s1&#39;然后将搜索ts孩子跨越班级&#34; myclass-old&#34;。在这种情况下,您有多个相同的ID,因此您应该使用以下选择器

$('#top2 span.myclass-old').toggleClass('myclass-new');$('#top1 span.myclass-old').toggleClass('myclass-new');

答案 4 :(得分:0)

你的选择器错了, 尝试

$('#top1 #s1.myclass-old').toggleClass('myclass-new');

我建议您更改跨度ID,因为ID在文档中是唯一的,您最终可能会遇到混乱的代码