2013-12-22 29 views
-1

我有一个所有拉丁字母表的按钮列表,我想将类名从“m_letter”更改为“m_letter active”,例如我可以切换它们。如何使用JavaScript更改“this”类名?

我的JavaScript代码是这样的

$(".m_letter").click(function(){ 
    $(this).className = "m_letter active"; //This is an example i tried other codes that i found on net. 
}); 

的Html

<li class="m_letter">A</li> 
<li class="m_letter">B</li> 
<li class="m_letter">C</li> 
... 
<li class="m_letter">Z</li> 
+0

你混为一谈两种不同的方法。一个是本地API,它将是'this.className = ...',另一个是jQuery API,要使用它,必须构造一个包装你的'this'元素的jQuery对象,并执行'$(这个).addClass(...',其中'.addClass()'是从'$'函数返回的jQuery对象的一个​​方法。 –

回答

2

使用addClass

这将增加类上点击:

$(".m_letter").click(function(){ $(this).addClass('active'); }); 

如果您需要首先从不同的m_letter中删除活动类,添加此行。

$('.m_letter.active').removeClass('active') 
2

使用.addClass()

$(this).addClass('m_letter active'); 
2

由于您使用jQuery的,它很容易:

$(this).addClass('active'); 

你的点击处理程序中。

不要使用:

$('.m_letter').addClass('active'); 

为将设置项目的所有活跃。

+0

那么我试过了,它工作,但addClass('active')有什么区别和addClass('m_letter active'),因为两者的结果都是我想的。 – Incognito

+0

@Incognito相同的结果,但第二个是详细的,它足以添加你实际添加的类 – David

1

我想你正在寻找的是这样的:http://jsfiddle.net/CKW25/1/

JS

$(".m_letter").click(function(){ 
    $(".m_letter").removeClass("active"); 
    $(this).addClass("active"); 
}); 
+0

是的,这也会做的工作谢谢你的努力。 – Incognito

相关问题