JavaScript中setAttribute用法介紹
更新時間:2013年07月20日 16:00:55 作者:
我們經(jīng)常需要在JavaScript中給Element動態(tài)添加各種屬性,這可以通過使用setAttribute()來實(shí)現(xiàn),這就涉及到了瀏覽器的兼容性問題
setAttribute(string name, string value):增加一個指定名稱和值的新屬性,或者把一個現(xiàn)有的屬性設(shè)定為指定的值。
1、樣式問題
setAttribute("class", value)中class是指改變"class"這個屬性,所以要帶引號。
vName代表對樣式賦值。
例如:
var input = document.createElement("input");
input.setAttribute("type", "text");
input.setAttribute("name", "q");
input.setAttribute("class",bordercss);
輸出時:<input type="text" name="q" class="bordercss">,即,input控件具有bordercss樣式屬性
注意:class屬性在W3C DOM中扮演著很重要的角色,但由于瀏覽器差異性仍然存在。
使用setAttribute("class", vName)語句動態(tài)設(shè)置Element的class屬性在firefox中是行的通的,但在IE中卻不行。因?yàn)槭褂肐E內(nèi)核的瀏覽器不認(rèn)識"class",要改用"className";
同樣,firefox 也不認(rèn)識"className"。所以常用的方法是二者兼?zhèn)洌?BR>
element.setAttribute("class", value); //for firefox
element.setAttribute("className", value); //for IE
2、方法屬性等問題
例如:
var bar = document.getElementById("testbt");
bar.setAttribute("onclick", "javascript:alert('This is a test!');");
這里利用setAttribute指定e的onclick屬性,簡單,很好理解。
但是IE不支持,IE并不是不支持setAttribute這個函數(shù),而是不支持用setAttribute設(shè)置某些屬性,例如對象屬性、集合屬性、事件屬性,也就是說用setAttribute設(shè)置style和onclick這些屬性在IE中是行不通的。
為達(dá)到兼容各種瀏覽器的效果,可以用點(diǎn)符號法來設(shè)置Element的對象屬性、集合屬性和事件屬性。
document.getElementById("testbt").className = "bordercss";
document.getElementById("testbt").style.cssText = "color: #00f;";
document.getElementById("testbt").style.color = "#00f";
document.getElementById("testbt").onclick= function () { alert("This is a test!"); }
1、樣式問題
setAttribute("class", value)中class是指改變"class"這個屬性,所以要帶引號。
vName代表對樣式賦值。
例如:
復(fù)制代碼 代碼如下:
var input = document.createElement("input");
input.setAttribute("type", "text");
input.setAttribute("name", "q");
input.setAttribute("class",bordercss);
輸出時:<input type="text" name="q" class="bordercss">,即,input控件具有bordercss樣式屬性
注意:class屬性在W3C DOM中扮演著很重要的角色,但由于瀏覽器差異性仍然存在。
使用setAttribute("class", vName)語句動態(tài)設(shè)置Element的class屬性在firefox中是行的通的,但在IE中卻不行。因?yàn)槭褂肐E內(nèi)核的瀏覽器不認(rèn)識"class",要改用"className";
同樣,firefox 也不認(rèn)識"className"。所以常用的方法是二者兼?zhèn)洌?BR>
復(fù)制代碼 代碼如下:
element.setAttribute("class", value); //for firefox
element.setAttribute("className", value); //for IE
2、方法屬性等問題
例如:
復(fù)制代碼 代碼如下:
var bar = document.getElementById("testbt");
bar.setAttribute("onclick", "javascript:alert('This is a test!');");
這里利用setAttribute指定e的onclick屬性,簡單,很好理解。
但是IE不支持,IE并不是不支持setAttribute這個函數(shù),而是不支持用setAttribute設(shè)置某些屬性,例如對象屬性、集合屬性、事件屬性,也就是說用setAttribute設(shè)置style和onclick這些屬性在IE中是行不通的。
為達(dá)到兼容各種瀏覽器的效果,可以用點(diǎn)符號法來設(shè)置Element的對象屬性、集合屬性和事件屬性。
復(fù)制代碼 代碼如下:
document.getElementById("testbt").className = "bordercss";
document.getElementById("testbt").style.cssText = "color: #00f;";
document.getElementById("testbt").style.color = "#00f";
document.getElementById("testbt").onclick= function () { alert("This is a test!"); }
相關(guān)文章
JavaScript開發(fā)過程中規(guī)范commit?msg意義詳解
這篇文章主要為大家介紹了JavaScript開發(fā)過程中規(guī)范commit?msg意義的內(nèi)容詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2021-11-11
jquery中prop()方法和attr()方法的區(qū)別淺析
官方例舉的例子感覺和attr()差不多,也不知道有什么區(qū)別,既然有了prop()這個新方法,不可能沒用吧,那什么時候該用attr(),什么時候該用prop()呢2013-09-09
javascript實(shí)現(xiàn)Java中的Map對象功能的實(shí)例詳解
這篇文章主要介紹了javascript 自定義對象實(shí)現(xiàn)Java中的Map對象功能的相關(guān)資料,這里實(shí)現(xiàn)這樣的功能,幫助大家理解這部分內(nèi)容,需要的朋友可以參考下2017-08-08
javascript學(xué)習(xí)筆記(三)BOM和DOM詳解
本文應(yīng)用了很多實(shí)例,來解讀JavaScript中BOM和DOM,DOM是一個使程序和腳本有能力動態(tài)地訪問和更新文檔的內(nèi)容、結(jié)構(gòu)以及樣式的平臺和語言中立的接口。,而BOM定義了JavaScript可以進(jìn)行操作的瀏覽器的各個功能部件的接口。2014-09-09
javascript數(shù)組操作方法小結(jié)和3個屬性詳細(xì)介紹
這篇文章主要介紹了javascript數(shù)組操作方法小結(jié)和3個屬性詳細(xì)介紹,需要的朋友可以參考下2014-07-07
javascript replace()第二個參數(shù)為函數(shù)時的參數(shù)用法
replace()函數(shù)具有替換功能,它可以具有兩個參數(shù),第一個參數(shù)可以是要被替換的字符串或者匹配要被替換字符串的正則表達(dá)式,第二個參數(shù)可以是替換文本或者一個函數(shù),下面看一下關(guān)于replace()函數(shù)的幾個代碼實(shí)例2016-12-12
關(guān)于JavaScript的URL.createObjectURL()的使用方法
這篇文章主要介紹了關(guān)于URL.createObjectURL()的使用方法,使用createObjectURL可以節(jié)省性能并更快速,只不過需要在不使用的情況下手動釋放內(nèi)存,還不清楚的朋友一起來看看吧2023-04-04

