如何使用javascript更改按钮的类?
我有以下代码:如何使用javascript更改按钮的类?,javascript,css,Javascript,Css,我有以下代码: var image = button.getElementsByTagName("span")[0]; if (isEnabled) { image.style.color = "#BBB" else { image.style.color = "#AAA" 有没有人能给我一些建议,如何不直接设置颜色,而是将按钮设置为启用第三级,然后再将其设置为禁用第三级 请注意,“我的按钮”当前有如下类: class="fa fa-bold" class="fa fa-arr
var image = button.getElementsByTagName("span")[0];
if (isEnabled) {
image.style.color = "#BBB"
else {
image.style.color = "#AAA"
有没有人能给我一些建议,如何不直接设置颜色,而是将按钮设置为启用第三级,然后再将其设置为禁用第三级
请注意,“我的按钮”当前有如下类:
class="fa fa-bold"
class="fa fa-arrow"
class="fa fa-bold enabled"
class="fa fa-bold disabled"
class="fa fa-bold enabled"
function addClass(elem, cls) {
if (!hasClass(elem, cls)) {
var oldCls = elem.className;
if (oldCls) {
oldCls += " ";
}
elem.className = oldCls + cls;
}
}
function removeClass(elem, cls) {
var str = " " + elem.className + " ";
elem.className = str.replace(" " + cls + " ", " ").replace(/^\s+|\s+$/g, "");
}
function hasClass(elem, cls) {
var str = " " + elem.className + " ";
var testCls = " " + cls + " ";
return(str.indexOf(testCls) !== -1) ;
}
removeClass(image, "enabled");
addClass(image, "disabled");
等等
所以我需要前两个类保持不变。然后我需要能够设置为这样:
class="fa fa-bold"
class="fa fa-arrow"
class="fa fa-bold enabled"
class="fa fa-bold disabled"
class="fa fa-bold enabled"
function addClass(elem, cls) {
if (!hasClass(elem, cls)) {
var oldCls = elem.className;
if (oldCls) {
oldCls += " ";
}
elem.className = oldCls + cls;
}
}
function removeClass(elem, cls) {
var str = " " + elem.className + " ";
elem.className = str.replace(" " + cls + " ", " ").replace(/^\s+|\s+$/g, "");
}
function hasClass(elem, cls) {
var str = " " + elem.className + " ";
var testCls = " " + cls + " ";
return(str.indexOf(testCls) !== -1) ;
}
removeClass(image, "enabled");
addClass(image, "disabled");
等等。使用
要将新类myClass
添加到图像中,请使用add()
:
将类添加到元素的类列表中。如果类已经存在于元素的类列表中,它将不会再次添加该类
要删除类,请使用remove()
以安全的方式从元素的类列表中删除类。如果类不存在,则不会引发错误
要切换
类,请使用切换()
如果该名称存在于元素的类列表中,它将被删除。如果名称不存在,将添加该名称
要检查元素是否具有类,请使用contains()
检查元素的类列表是否包含特定类
CSS
.myClass {
color: #bbb;
}
使用
要将新类myClass
添加到图像中,请使用add()
:
将类添加到元素的类列表中。如果类已经存在于元素的类列表中,它将不会再次添加该类
要删除类,请使用remove()
以安全的方式从元素的类列表中删除类。如果类不存在,则不会引发错误
要切换
类,请使用切换()
如果该名称存在于元素的类列表中,它将被删除。如果名称不存在,将添加该名称
要检查元素是否具有类,请使用contains()
检查元素的类列表是否包含特定类
CSS
.myClass {
color: #bbb;
}
如果您不使用内置类名功能的jQuery之类的库,并且希望从旧浏览器获得浏览器支持,那么您可以使用自己的小函数从DOM对象中添加或删除类名,而不会干扰其他类名,如下所示:
class="fa fa-bold"
class="fa fa-arrow"
class="fa fa-bold enabled"
class="fa fa-bold disabled"
class="fa fa-bold enabled"
function addClass(elem, cls) {
if (!hasClass(elem, cls)) {
var oldCls = elem.className;
if (oldCls) {
oldCls += " ";
}
elem.className = oldCls + cls;
}
}
function removeClass(elem, cls) {
var str = " " + elem.className + " ";
elem.className = str.replace(" " + cls + " ", " ").replace(/^\s+|\s+$/g, "");
}
function hasClass(elem, cls) {
var str = " " + elem.className + " ";
var testCls = " " + cls + " ";
return(str.indexOf(testCls) !== -1) ;
}
removeClass(image, "enabled");
addClass(image, "disabled");
如果您不使用内置类名功能的jQuery之类的库,并且希望从旧浏览器获得浏览器支持,那么您可以使用自己的小函数从DOM对象中添加或删除类名,而不会干扰其他类名,如下所示:
class="fa fa-bold"
class="fa fa-arrow"
class="fa fa-bold enabled"
class="fa fa-bold disabled"
class="fa fa-bold enabled"
function addClass(elem, cls) {
if (!hasClass(elem, cls)) {
var oldCls = elem.className;
if (oldCls) {
oldCls += " ";
}
elem.className = oldCls + cls;
}
}
function removeClass(elem, cls) {
var str = " " + elem.className + " ";
elem.className = str.replace(" " + cls + " ", " ").replace(/^\s+|\s+$/g, "");
}
function hasClass(elem, cls) {
var str = " " + elem.className + " ";
var testCls = " " + cls + " ";
return(str.indexOf(testCls) !== -1) ;
}
removeClass(image, "enabled");
addClass(image, "disabled");
注意:.classList
需要IE10或更高版本。在我的情况下,我不确定按钮包含哪些类,所以我应该先删除已启用和已禁用的类,然后只添加一个?你能给我的特殊代码举个这样的例子吗?谢谢。ie10或更高版本可以满足我的需要:-)如果您不确定是否可以删除所有不支持的类并添加所需的类。@jfriend00MDN
doc还为不支持这些属性的浏览器提供多填充注:。classList
需要ie10或更高版本。在我的情况下,我不确定按钮包含哪些类我应该先删除已启用和已禁用,然后只添加一个吗?你能给我的特殊代码举个这样的例子吗?谢谢。ie10或更高版本可以满足我的需要:-)如果您不确定是否可以删除所有不支持的类并添加所需的类。@jfriend00MDN
doc还为不支持这些属性的浏览器提供多填充。我会在addFunction
中添加内部检查,无论该类是否存在。否则类似于myClass myClass
的东西是可能的。@AMartinNo1-我更新了一个功能更强的版本,检查cls是否已经存在。我试图让答案尽可能简单(不要拖入太多其他代码),但我明白你的意思。我想在addFunction
中添加一个内部检查,看看类是否存在。否则类似于myClass myClass
的东西是可能的。@AMartinNo1-我更新了一个功能更强的版本,检查cls是否已经存在。我试图让答案尽可能简单(不要拖入太多其他代码),但我明白你的意思。