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