最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

js 操作css實(shí)現(xiàn)代碼

 更新時(shí)間:2009年06月11日 22:16:16   作者:  
雖說jquery支持css選擇器,可以把一些css規(guī)則放在js里,js無論如何是比css靈活的。但是js修改的是dom的htmlelement的stlye,是一個(gè)操作而非規(guī)則。
當(dāng)我們需要的是一條規(guī)則的時(shí)候,總不能在每次dom發(fā)生變化的時(shí)候去執(zhí)行這個(gè)操作,否則也太效率低下了。
好在dom中css rules也是可以修改的。不過不同瀏覽器的對(duì)于css rules的接口描述也不同,其中ie中以類似hash table的方式,而ff以數(shù)組方式。
從可編程性上說,ie的接口描述更討程序員喜歡,不過從邏輯上說,ff顯然更為合理。
我提供了類似于ie的方式對(duì)兩套代碼進(jìn)行簡(jiǎn)單包裝,不過ie在dom的css removeRule之后并不能確定同步的把規(guī)則兌現(xiàn)。所以最好用規(guī)則覆蓋的方式而非remove。
需要注意的是,在使用改js函數(shù)的時(shí)候,頁(yè)面上至少要有一個(gè)style標(biāo)簽。下面是代碼及示例。
復(fù)制代碼 代碼如下:

<style>
#a:
{
color: blue;
}
</style>
<style>
#a:
{
background: gray;
}
</style>
<script>
function addCSSRule(key,value){
var css = document.styleSheets[document.styleSheets.length-1];
css.cssRules ?
(css.insertRule(key+"{"+value+"}", css.cssRules.length)) :
(css.addRule(key,value)) ;
}
function removeCSSRule(key){
for(var i = 0; i < document.styleSheets.length; i++){
var css = document.styleSheets[i];
css.cssRules ?
(function(){
for(var j = 0; j < css.cssRules.length; j++){
if(css.cssRules[j].selectorText==key){
css.deleteRule(j);
}
}
})() :
(css.removeRule(key)) ;
}
}
</script>
<div id="a">
abc
</div>
<button onclick='addCSSRule("#a","color:red;background:yellow;")'>
add</button>
<button onclick='removeCSSRule("#a")'>
remove</button>

相關(guān)文章

  • thinkphp實(shí)現(xiàn)無限分類(使用遞歸)

    thinkphp實(shí)現(xiàn)無限分類(使用遞歸)

    這篇文章主要介紹了在使用遞歸的情況下thinkphp實(shí)現(xiàn)無限分類,感興趣的小伙伴們可以參考一下
    2015-12-12
  • 對(duì)象無length屬性時(shí)IE6/IE7中無法將其轉(zhuǎn)換成偽數(shù)組(ArrayLike)

    對(duì)象無length屬性時(shí)IE6/IE7中無法將其轉(zhuǎn)換成偽數(shù)組(ArrayLike)

    對(duì)象無length屬性時(shí)IE6/7中無法將其轉(zhuǎn)換成偽數(shù)組(ArrayLike) 的解決方法,需要的朋友可以參考下。
    2011-07-07
  • JavaScript在多瀏覽器下for循環(huán)的使用方法

    JavaScript在多瀏覽器下for循環(huán)的使用方法

    JavaScript語(yǔ)言在不同的瀏覽器的下有存在細(xì)微的差異,但不像DOM操作差異那么大,現(xiàn)在為大家列舉出其中一個(gè)"for循環(huán)"的差異,并介紹如何有效的解決這種差異
    2012-11-11
  • JavaScript其他類型的值轉(zhuǎn)換為布爾值的規(guī)則詳解

    JavaScript其他類型的值轉(zhuǎn)換為布爾值的規(guī)則詳解

    在JavaScript中,所有的值在邏輯上下文中都會(huì)被轉(zhuǎn)換為布爾類型(Boolean),理解這些轉(zhuǎn)換規(guī)則對(duì)開發(fā)者來說至關(guān)重要,尤其是在條件判斷、短路運(yùn)算、邏輯非(!)等場(chǎng)景下,正確掌握布爾轉(zhuǎn)換可以避免潛在的bug,本文將詳細(xì)介紹 JavaScript 其他類型的值是如何轉(zhuǎn)換為布爾值的
    2025-04-04
  • JS如何通過FileReader獲取.txt文件內(nèi)容

    JS如何通過FileReader獲取.txt文件內(nèi)容

    今天小編就為大家分享一篇JS如何通過FileReader獲取.txt文件內(nèi)容,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • JS出現(xiàn)404錯(cuò)誤原理及解決方案

    JS出現(xiàn)404錯(cuò)誤原理及解決方案

    這篇文章主要介紹了JS出現(xiàn)404錯(cuò)誤原理及解決方案,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • 詳解ECMAScript6入門--Class對(duì)象

    詳解ECMAScript6入門--Class對(duì)象

    本篇文章主要介紹了詳解ECMAScript6入門--Class對(duì)象,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-04-04
  • Js動(dòng)態(tài)設(shè)置rem來實(shí)現(xiàn)移動(dòng)端字體的自適應(yīng)代碼

    Js動(dòng)態(tài)設(shè)置rem來實(shí)現(xiàn)移動(dòng)端字體的自適應(yīng)代碼

    這篇文章主要介紹了Js動(dòng)態(tài)設(shè)置rem來實(shí)現(xiàn)移動(dòng)端字體的自適應(yīng)代碼,代碼簡(jiǎn)單易懂非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-10-10
  • JavaScript中執(zhí)行上下文和執(zhí)行棧

    JavaScript中執(zhí)行上下文和執(zhí)行棧

    這篇文章主要介紹了JavaScript中執(zhí)行上下文和執(zhí)行棧,執(zhí)行上下文是評(píng)估和執(zhí)行JavaScript代碼的環(huán)境的抽象概念,更多相關(guān)介紹,感興趣的朋友可以參考一下
    2022-09-09
  • 深入淺析同源策略和跨域訪問

    深入淺析同源策略和跨域訪問

    同源策略(Same origin policy)是一種約定,它是瀏覽器最核心也最基本的安全功能,如果缺少了同源策略,則瀏覽器的正常功能可能都會(huì)受到影響??梢哉fWeb是構(gòu)建在同源策略基礎(chǔ)之上的,瀏覽器只是針對(duì)同源策略的一種實(shí)現(xiàn)
    2015-11-11

最新評(píng)論

都兰县| 河源市| 武安市| 永平县| 桦南县| 迁西县| 黔西| 扎鲁特旗| 沙湾县| 麻江县| 博野县| 宁德市| 道孚县| 德江县| 永嘉县| 普陀区| 台湾省| 卫辉市| 扶余县| 林州市| 阳高县| 巴塘县| 禄丰县| 花莲市| 武平县| 确山县| 关岭| 大名县| 乐东| 五大连池市| 禹城市| 时尚| 桦川县| 深圳市| 当阳市| 崇左市| 越西县| 齐河县| 正蓝旗| 伊宁市| 徐汇区|