1.element要用getElementById or ByTagName來得到,
2.setAttribute("class", vName)中class是指改變"class"這個屬性,所以要帶引號。
3.IE中要把class改成className,.....IE不認class,所以最好寫兩句,都用上吧。
W3C DOM - {setAttribute()}
setAttribute(string name, string value):增加一個指定名稱和值的新屬性,或者把一個現有的屬性設定爲指定的值。
1、關於class和className
class屬性在W3C DOM中扮演着很重要的角色,但由於瀏覽器差異性仍然存在。使用setAttribute("class", vName)語句動態設置
Element的class屬性在firefox中是行的通的,在IE中卻不行。因爲使用IE內核的瀏覽器不認識"class",要改用"className";
同樣,firefox 也不認識"className"。所以常用的方法是二者兼備:
element.setAttribute("class", vName);
element.setAttribute("className", vName); //for IE
2、setAttribute()的差異
我們經常需要在JavaScript中給Element動態添加各種屬性,這可以通過使用setAttribute()來實現,這就涉及到了瀏覽器的兼容性問題。
var bar = document.getElementById("foo");
bar.setAttribute("onclick", "javascript:alert('This is a test!');");
這裏利用setAttribute指定e的onclick屬性,簡單,很好理解。但是IE不支持,IE並不是不支持setAttribute這個函數,
而是不支持用setAttribute設置某些屬性,例如對象屬性、集合屬性、事件屬性,也就是說用setAttribute設置style和onclick這些屬性
在IE中是行不通的。爲達到兼容各種瀏覽器的效果,可以用點符號法來設置Element的對象屬性、集合屬性和事件屬性。
程序代碼
document.getElementById("foo").className = "fruit";
document.getElementById("foo").style.cssText = "color: #00f;";
document.getElementById("foo").style.color = "#00f";
document.getElementById("foo").οnclick= function () { alert("This is a test!"); }
例如:
程序代碼
<script language="javascript">
function Testlink(){
//var alink=document.getElementsByTagName("A")[0].href;
var alink=document.getElementsByTagName("A");
for (i=0;i<alink.length;i++){
alink[i].setAttribute("class", " ");
alink[i].setAttribute("className", " ");
}
window.event.srcElement.setAttribute("class", "Selecta");
window.event.srcElement.setAttribute("className", "Selecta"); //for IE
}
function Setonclick(){
var alink=document.getElementsByTagName("A");
for (i=0;i<alink.length;i++){
//alert(i)
alink[i].οnclick=Testlink;// 這個函數名不能帶() 即Testlink();
}
}
</script>
程序代碼
<p><a href="#" >鏈接狀態測試</a></p>
<p><a href="#" >鏈接狀態測試</a></p>
<p><a href="#" class="Selecta" id="Testlink">鏈接狀態測試</a></p>
<p><a href="#" >鏈接狀態測試</a></p>
<p><a href="#" >鏈接狀態測試</a></p>
<p><a href="#" >鏈接狀態測試</a></p>
本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/jiafugui/archive/2009/07/17/4356578.aspx