<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        javascript中attribute和property的區別詳解_基礎知識

        來源:懂視網 責編:小采 時間:2020-11-27 21:23:56
        文檔

        javascript中attribute和property的區別詳解_基礎知識

        javascript中attribute和property的區別詳解_基礎知識:DOM元素的attribute和property很容易混倄在一起,分不清楚,兩者是不同的東西,但是兩者又聯系緊密。很多新手朋友,也包括以前的我,經常會搞不清楚。attribute翻譯成中文術語為特性,property翻譯成中文術語為屬性,從中文的字面意思來看,確實是有
        推薦度:
        導讀javascript中attribute和property的區別詳解_基礎知識:DOM元素的attribute和property很容易混倄在一起,分不清楚,兩者是不同的東西,但是兩者又聯系緊密。很多新手朋友,也包括以前的我,經常會搞不清楚。attribute翻譯成中文術語為特性,property翻譯成中文術語為屬性,從中文的字面意思來看,確實是有

        DOM元素的attribute和property很容易混倄在一起,分不清楚,兩者是不同的東西,但是兩者又聯系緊密。很多新手朋友,也包括以前的我,經常會搞不清楚。

        attribute翻譯成中文術語為“特性”,property翻譯成中文術語為“屬性”,從中文的字面意思來看,確實是有點區別了,先來說說attribute。

        attribute是一個特性節點,每個DOM元素都有一個對應的attributes屬性來存放所有的attribute節點,attributes是一個類數組的容器,說得準確點就是NameNodeMap,總之就是一個類似數組但又和數組不太一樣的容器。attributes的每個數字索引以名值對(name=”value”)的形式存放了一個attribute節點。
        代碼如下:hello
        上面的div元素的HTML代碼中有class、id還有自定義的gameid,這些特性都存放在attributes中,類似下面的形式:
        代碼如下:[ class="box", id="box", gameid="880" ]
        可以這樣來訪問attribute節點:
        代碼如下:
        var elem = document.getElementById( 'box' );
        console.log( elem.attributes[0].name ); // class
        console.log( elem.attributes[0].value ); // box

        但是IE6-7將很多東西都存放在attributes中,上面的訪問方法和標準瀏覽器的返回結果又不同。通常要獲取一個attribute節點直接用getAttribute方法:
        代碼如下:console.log( elem.getAttribute('gameid') ); // 880

        要設置一個attribute節點使用setAttribute方法,要刪除就用removeAttribute:

        代碼如下:elem.setAttribute('testAttr', 'testVal');
        console.log( elem.removeAttribute('gameid') ); // undefined

        attributes是會隨著添加或刪除attribute節點動態更新的。
        property就是一個屬性,如果把DOM元素看成是一個普通的Object對象,那么property就是一個以名值對(name=”value”)的形式存放在Object中的屬性。要添加和刪除property也簡單多了,和普通的對象沒啥分別:
        代碼如下:
        elem.gameid = 880; // 添加
        console.log( elem.gameid ) // 獲取
        delete elem.gameid // 刪除

        之所以attribute和property容易混倄在一起的原因是,很多attribute節點還有一個相對應的property屬性,比如上面的div元素的id和class既是attribute,也有對應的property,不管使用哪種方法都可以訪問和修改。

        代碼如下:
        console.log( elem.getAttribute('id') ); // box
        console.log( elem.id ); // box
        elem.id = 'hello';
        console.log( elem.getAttribute('id') ); // hello

        但是對于自定義的attribute節點,或者自定義property,兩者就沒有關系了。
        代碼如下:
        console.log( elem.getAttribute('gameid') ); // 880
        console.log( elem.gameid ); // undefined
        elem.areaid = '900';
        console.log( elem.getAttribute('areaid') ) // null

        對于IE6-7來說,沒有區分attribute和property:

        代碼如下:
        console.log( elem.getAttribute('gameid') ); // 880
        console.log( elem.gameid ); // 880
        elem.areaid = '900';
        console.log( elem.getAttribute('areaid') ) // 900

        很多新手朋友估計都很容易掉進這個坑中。
        DOM元素一些默認常見的attribute節點都有與之對應的property屬性,比較特殊的是一些值為Boolean類型的property,如一些表單元素:

        代碼如下:

        var radio = document.getElementById( 'radio' );
        console.log( radio.getAttribute('checked') ); // checked
        console.log( radio.checked ); // true

        對于這些特殊的attribute節點,只有存在該節點,對應的property的值就為true,如:
        代碼如下:

        var radio = document.getElementById( 'radio' );
        console.log( radio.getAttribute('checked') ); // anything
        console.log( radio.checked ); // true

        最后為了更好的區分attribute和property,基本可以總結為attribute節點都是在HTML代碼中可見的,而property只是一個普通的名值對屬性。

        代碼如下:
        // gameid和id都是attribute節點
        // id同時又可以通過property來訪問和修改
        hello
        // areaid僅僅是property
        elem.areaid = 900;

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        javascript中attribute和property的區別詳解_基礎知識

        javascript中attribute和property的區別詳解_基礎知識:DOM元素的attribute和property很容易混倄在一起,分不清楚,兩者是不同的東西,但是兩者又聯系緊密。很多新手朋友,也包括以前的我,經常會搞不清楚。attribute翻譯成中文術語為特性,property翻譯成中文術語為屬性,從中文的字面意思來看,確實是有
        推薦度:
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 成人免费福利电影| 成人免费毛片内射美女-百度| 日韩伦理片电影在线免费观看| 美女视频免费看一区二区| 一二三四在线播放免费观看中文版视频| 亚洲视频一区在线观看| 18勿入网站免费永久| 日韩亚洲不卡在线视频中文字幕在线观看| 四虎永久在线观看免费网站网址 | 91亚洲精品麻豆| 亚洲jizzjizz在线播放久| 亚洲视频免费在线播放| 国产精品亚洲精品青青青| 精品熟女少妇AV免费观看| 亚洲国产精品一区二区三区久久| 国产午夜亚洲精品不卡免下载| 久久精品国产亚洲7777| 久久99免费视频| ass亚洲**毛茸茸pics| 国产美女做a免费视频软件| 国产黄色免费观看| 777亚洲精品乱码久久久久久| AV片在线观看免费| 日韩一区二区三区免费播放| 午夜免费不卡毛片完整版| 久久久久亚洲av无码专区喷水 | 免费A级毛片无码无遮挡内射| 亚洲啪AV永久无码精品放毛片| 午夜亚洲福利在线老司机| 大地影院MV在线观看视频免费| 日韩一级视频免费观看| 成全视成人免费观看在线看| 亚洲人成电影网站| 亚洲A丁香五香天堂网| a级大片免费观看| 亚洲综合成人婷婷五月网址| 国产a v无码专区亚洲av| 97免费人妻在线视频| 免费无码又爽又黄又刺激网站| 久久丫精品国产亚洲av| 四虎影视永久免费观看|