JS高級篇----節(jié)點(下)

寫在前面的話:
接上篇,上節(jié)我們談到了關(guān)于節(jié)點的種類和獲取;接下來我們就來談?wù)劰?jié)點樣式的設(shè)置和節(jié)點的常用屬性。

獲取行間樣式表中的樣式

三種不同的獲取方法

1.書寫格式:style屬性節(jié)點.樣式屬性名

<script type="text/javascript">
        // 獲取到標簽節(jié)點
        var jsDiv = document.getElementById("box");
        // 獲取到標簽的style屬性節(jié)點
        var jsDivStyleNode =  jsDiv.style;
                console.log(jsDivStyleNode.width);
            console.log(typeof jsDivStyleNode.width);
</script>
        
打印結(jié)果.PNG

這里我們看到div的寬度值為100px,并且獲取到樣式的屬性值的類型為String,這也就暗示了我們設(shè)置樣式的時候也應該設(shè)成String類型的。

2. 書寫格式:元素節(jié)點.style.樣式屬性名

console.log(jsDiv.style.height); //打印出jsDiv的高度

注意:此種方法比較常用,推薦使用!

3. 書寫格式:元素節(jié)點.style[樣式屬性名]

console.log(jsDiv.style["backgound-color"] //打印出了jsDiv的背景顏色

相信大家看到此種樣式,一定會對這個中括號感覺似曾相識吧!沒錯!樣式對于我們來說,就是一個數(shù)組,通過style設(shè)置的屬性就是一個一個的下標從0增長的數(shù)組值。

  console.log(jsDivStyleNode);
元素節(jié)點的樣式.PNG

我們可以看出,在style中設(shè)置的屬性對應的下標就是0,1,2,除此之外,還看到了許多的屬性,這些都是我們在style里面未設(shè)置的,所以它們的值都是為空的。當然,我們還可以通過這種方式獲取自定義變量。

在script中定義變量a

var a = "width";  //將字符串width賦給a
console.log(jsDiv.style[a]);  // 打印a的值
a的輸出值.PNG

通過此種方法我們也能獲取到a的值為100px

獲取內(nèi)部樣式和外部樣式

對于獲取內(nèi)部和外部樣式的獲取的方式較為特殊,分為兩種情況:

1.IE瀏覽器
書寫格式:元素節(jié)點.currentStyle.樣式屬性名

2.其它瀏覽器

書寫格式:window.getComputedStyle(元素節(jié)點,偽類).樣式屬性名

偽類一般設(shè)置成null


var jsDiv1 = document.getElementById("box1");
var jsDiv2 = document.getElementById("box2");
//IE
if(jsDiv1.currentStyle){
      console.log(jsDiv1.currentStyle.width)
}
//其它
else{
      console.log(window.getComputedStyle(jsDiv1,null).width);
}

在這里,我們通過if語句來判斷是否是IE瀏覽器,來相應執(zhí)行不同的打印內(nèi)部樣式的方法。
當然外部樣式也是這樣來獲取!!!


設(shè)置內(nèi)部樣式或外部樣式

格式:元素節(jié)點.style.樣式屬性 = 新的屬性值

jsDiv1.style.height = "300px";
jsDiv2.style.width = "20px";
jsDiv1.style.backgroundColor = "green";
設(shè)置前

設(shè)置后

我們僅僅通過將div設(shè)置新的屬性值,就可以動態(tài)的改變了標簽的樣式,是不是很神奇呢!(⊙o⊙)

注意:getComputedStyle和currentStyle是只讀屬性,能獲取CSS未設(shè)置的樣式。element.style只能讀取元素style屬性中的CSS樣式,能設(shè)置樣式

總結(jié):通過本節(jié)的學習,也了解到了DOM文檔中四種不同的節(jié)點,以及區(qū)分它們的方法。通過getElement來獲取它們,進而來設(shè)置它們的樣式屬性值進而動態(tài)的改變它們的樣式。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽默認的外補...
    _Yfling閱讀 13,806評論 1 92
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,969評論 19 139
  • 一、JS前言 (1)認識JS 也許你已經(jīng)了解HTML標記(也稱為結(jié)構(gòu)),知道了CSS樣式(也稱為表示),會使用HT...
    凜0_0閱讀 2,798評論 0 8
  • 鋼琴考級知識分享“鋼琴考級1-10級全部曲目大全”學鋼琴的童鞋可以看一下。 鋼琴一級 基本練習 1。音階(分手、兩...
    樂度音樂閱讀 14,393評論 0 0
  • 過了多年不開炊的生活,一直都以為魚就是超市里那種白色盒子裝好的一段段,雞鴨肉都是明凈的一盒盒清清楚楚干凈的擺在...
    一碗魚閱讀 196評論 2 0