使用javascript设置HTML类名称

问题描述:

是否可以将javascript函数调用替换为HTML类名称,以便可以根据函数的结果设置类?例如,像:使用javascript设置HTML类名称

<a class="fSetClass(vName)" .... 

这将调用名为fSetClass(功能),并接收返回基于VNAME它传递的参数一个有效的CSS类名。

感谢

+0

而那类的名称会在页面的初始化设置一次?然后PHP/C#/ ... – 2012-01-05 20:28:04

+1

不,但你可以使用JavaScript来改变一个元素的类名(尽管你不能像'class =“fSetClass())那样做,并且期望它能够工作。更多的PHP领域真的,而不是JavaScript – 2012-01-05 20:28:26

+0

你的意思是像jQuery的addClass()或removeClass()函数吗? – denolk 2012-01-05 20:28:48

如果你使用jQuery,您可以使用addClass功能

$(element).addClass('add-this-class'); 

如果你想设置类代替,使用ATTR:

$(element).attr('class','add-this-class'); 
+2

如果他不使用jQuery? – 2012-01-05 20:30:28

+0

添加一个类!=设置类 – hugomg 2012-01-05 20:32:39

+0

刚刚添加了一个setter – 2012-01-05 20:40:10

不,它不是可能做你在HTML中要求的东西。尽管如此,你可以使用JavaScript在其后添加类。

没有,但你可以做的是使用jQuery获得该项目,然后从中添加或删除的类名称:

HTML

<div class="my-class">My Content</div> 

jQuery的

// will produce <div class="my-class added-class">My Content</div> 

var addClass = 1; 

if(addClass == 1) { 
    $(".my-class").addClass("added-class"); 
} 
else 
{ 
    $(".my-class").removeClass("removed-class"); 
} 

只有on*事件处理程序属性评估为JavaScript代码,其他属性则不是。

如前所述,您必须使用JavaScript正常分配类。假设你必须将元件(element)的引用,则必须将类指定给className[MDN]属性:

element.className = fSetClass(vname); 

如果使用jquery,则可以通过使用.attr设置类():

$(document).ready(function() { 
    function fSetClass(vName){ 
    $("#element_id").attr('class', vName); 
    } 

    fSetClass('className'); 

}); 

水木清华这样的,如果在一小段路
document.onload = function(){
document.getElementById('your-element-id').className = fSetClass(vname);
}