3
A
回答
8
如果你可以使用jQuery:
删除:
$('#div1').removeClass('name2')
补充:
$('#div1').addClass('name2')
如果您不能使用jQuery,我发现这个网址
http://snipplr.com/view/3561/addclass-removeclass-hasclass/
function hasClass(ele,cls) {
return ele.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)'));
}
function addClass(ele,cls) {
if (!this.hasClass(ele,cls)) ele.className += " "+cls;
}
function removeClass(ele,cls) {
if (hasClass(ele,cls)) {
var reg = new RegExp('(\\s|^)'+cls+'(\\s|$)');
ele.className=ele.className.replace(reg,' ');
}
}
老实说,我没有使用非jQuery的方法,但似乎不够
2
有将是一种标准的方法去做这个。 HTML5引入了classList属性,它的工作原理是这样的:
element.classList.add('foo');
element.classList.remove('bar');
if (element.classList.contains('bof'))
element.classList.toggle('zot');
火狐3.6已经有这个功能,它的WebKit中正在处理。
这里是一个纯JS实现:
// HTML5 classList-style methods
//
function Element_classList(element) {
if ('classList' in element)
return element.classList;
return {
item: function(ix) {
return element.className.trim().split(/\s+/)[ix];
},
contains: function(name) {
var classes= element.className.trim().split(/\s+/);
return classes.indexOf(name)!==-1;
},
add: function(name) {
var classes= element.className.trim().split(/\s+/);
if (classes.indexOf(name)===-1) {
classes.push(name);
element.className= classes.join(' ');
}
},
remove: function(name) {
var classes= element.className.trim().split(/\s+/);
var ix= classes.indexOf(name);
if (ix!==-1) {
classes.splice(ix, 1);
element.className= classes.join(' ');
}
},
toggle: function(name) {
var classes= element.className.trim().split(/\s+/);
var ix= classes.indexOf(name);
if (ix!==-1)
classes.splice(ix, 1);
else
classes.push(name);
element.className= classes.join(' ');
}
};
}
// Add ECMA262-5 string trim if not supported natively
//
if (!('trim' in String.prototype)) {
String.prototype.trim= function() {
return this.replace(/^\s+/, '').replace(/\s+$/, '');
};
}
// Add ECMA262-5 Array indexOf if not supported natively
//
if (!('indexOf' in Array.prototype)) {
Array.prototype.indexOf= function(find, from /*opt*/) {
for (var i= from || 0, n= this.length; i<n; i++)
if (i in this && this[i]===find)
return i;
return -1;
};
}
这并不意味着你必须写:
Element_classList(element).add('foo');
其略少不错的,但你会得到快速的优势本地实现在哪里可用。
1
它很容易与JavaScript来改变任何事件的类名例如。
<script>
function changeClas()
{
document.getElementById('myDiv').className='myNewClass';
}
</script>
<div id="myDiv" onmouseover='changeClas()' class='myOldClass'> Hi There</div>
相关问题
- 1. javascript添加样式删除样式
- 2. 动态添加和删除元素样式的最佳方式
- 3. 从动态删除样式?
- 4. JavaScript删除动态添加分区
- 5. 动态行javascript添加/删除
- 6. Javascript删除文本框动态添加
- 7. JavaScript动态添加/删除div
- 8. 使用jquery/javascript动态添加/删除表中的行使用jquery/javascript动态添加/删除行
- 9. 删除/删除动态加载的javascript
- 10. CKEditor的自动删除样式属性,并添加“删除”
- 11. 动态添加/删除类
- 12. 删除动态添加脚本动态
- 13. JavaScript在动态生成的表单中添加删除字段
- 14. 在asp.net中动态添加表格不会清除样式
- 15. 动态添加的对象不会在javascript中拾取样式
- 16. 使用javascript动态添加和删除div在div内的x按钮上动态添加和删除
- 17. 动态添加/删除表中的行
- 18. Fancybox删除添加的样式
- 19. 从CKEditor中删除自动添加CSS样式
- 20. 动态删除/添加(取消删除)表单区域在C#
- 21. 动态加载和删除Javascript函数
- 22. 动态添加和删除字段jquery
- 23. jquery动态添加/删除输入
- 24. jquery动态添加/删除代码段
- 25. 删除动态添加的元素
- 26. 删除动态添加的表格
- 27. 动态添加和删除面板PrimeFaces
- 28. 添加/删除动态行到HTML表
- 29. 添加和删除动态文本框
- 30. jquery动态添加和删除类
+1对于非jQuery的解决方案 – 2010-04-05 14:26:35