我有两个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>
答案 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');
答案 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在文档中是唯一的,您最终可能会遇到混乱的代码