setAttribute的瀏覽器兼容性(轉)

1.element要用getElementById or ByTagName來獲得,javascript

2.setAttribute("class", vName)中class是指改變"class"這個屬性,因此要帶引號。css

3.IE中要把class改爲className,.....IE不認class,因此最好寫兩句,都用上吧。java

W3C DOM - {setAttribute()}瀏覽器

setAttribute(string name, string value):增長一個指定名稱和值的新屬性,或者把一個現有的屬性設定爲指定的值。函數

一、關於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 IEui

二、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").onclick= function () { alert("This is a test!"); }firefox

相關文章
相關標籤/搜索