<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
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        DOM之屬性(attribute)和自定義對象屬性(property)_html/css_WEB-ITnose

        來源:懂視網 責編:小采 時間:2020-11-27 16:24:16
        文檔

        DOM之屬性(attribute)和自定義對象屬性(property)_html/css_WEB-ITnose

        DOM之屬性(attribute)和自定義對象屬性(property)_html/css_WEB-ITnose:DOM節點有一些屬性和對象屬性. 有時候我們會把他們搞混淆, 因為他們是相關聯的, 但是他們真的是兩個不同的東西. 特性 DOM節點是一個對象. 因此它可以存儲自定義的對象屬性和方法,就像任何的Javascript對象. 下面的例子是指定分配一個對象給document.
        推薦度:
        導讀DOM之屬性(attribute)和自定義對象屬性(property)_html/css_WEB-ITnose:DOM節點有一些屬性和對象屬性. 有時候我們會把他們搞混淆, 因為他們是相關聯的, 但是他們真的是兩個不同的東西. 特性 DOM節點是一個對象. 因此它可以存儲自定義的對象屬性和方法,就像任何的Javascript對象. 下面的例子是指定分配一個對象給document.

        DOM節點有一些屬性和對象屬性. 有時候我們會把他們搞混淆, 因為他們是相關聯的, 但是他們真的是兩個不同的東西.

        特性

        DOM節點是一個對象. 因此它可以存儲自定義的對象屬性和方法,就像任何的Javascript對象.

        下面的例子是指定分配一個對象給document.body的myData對象屬性.

        document.body.myData = { name: 'John'}alert(document.body.myData.name) // Johndocument.body.sayHi = function() { alert(this.nodeName)} document.body.sayHi() // BODY

        自定義的對象屬性和方法僅在Javascript是可以見有效的. 不影響HTML.

        同樣, 自定義對象屬性可以通過for..in來與原生對象屬性混合輸出.

        document.body.custom = 5var list = []for(var key in document.body) { list.push(key)}alert(list.join('\n'))

        自定義DOM對象屬性:

      1. 可以有任何值. 對象屬性名稱有大小寫之分.

      2. 不影響HTML

      3. 屬性

        DOM節點提供了下面的標準方法來訪問HTML的標簽屬性.

      4. elem.hasAttribute(name)- 檢查屬性是否存在

      5. elem.getAttribute(name)- 獲取屬性的值

      6. elem.setAttribute(name, value)- 設置一個屬性

      7. elem.removeAttribute(name)- 移除屬性

      8. 在小于IE8和IE8兼容模式下,這些屬性就表現得不一樣:

      9. 僅 getAttribute和 setAttribute方法存在.

      10. 他們實際上是修改DOM對象屬性, 不是屬性.

      11. 屬性和對象屬性在IE<8是融合的. 有時候會導致不可預料的結果, 但是這種方式管理屬性, 是比較好的一個處理方法.

      12. 對象屬性和屬性之間的對比:

      13. 都是字符串.

      14. 名稱大小寫表現得不一樣. 因為HTML屬性沒有大小寫之分.

      15. 他們都可以使用innerTHML(除了老版本的IE之外)

      16. 可以列出所有的屬性數組.

      17. 例如, 我們看看下面的HTML結構:

        代碼名稱

        < body >

        < div about = "Elephant" class = "smiling" >

        >

        下面的例子設置一些屬性.

         

        運行上面這段代碼的時候, 有下面幾點提示:

        1. getAttribute('ABOUT')使用大寫名稱, 這是沒關系的.

        2. 你可以試著分配一個字符串或者另外類型的原始值, 都會變成一個字符串. 對象會自動轉換, 但是基于其他類型的值, IE會有一些問題,

        3. innerHTML會包含一個新的屬性"test"

        對象屬性和屬性同步化

        DOM節點的每一種類型有著標準的對象屬性. 例如, 'A' 標簽元素. 他有href和accessKey屬性, 以及其他特定的屬性. 除此之外, 他會繼承"id"屬性以及其他的HTMLElement的屬性.

        標準的DOM對象屬性和屬性是同步的.

        id

        例如, 瀏覽器id屬性和id對象屬性是同步存在的:

        href

        同步不保證有相同的值.下面是設置href屬性的例子:

        這是因為href的正確連接, 符合W3C規范

        另外的屬性, 他們是同步的, 但不是復制. 例如下面的input.checked:

        input.checked對象屬性值在true和false之間, 但是屬性則不會管這些.

        value

        同樣創建對象屬性與之同步, 只有一種方式.

        下面例子中,input.value從屬性設置中同步:

          

        但是從對象屬性中創建, 屬性則同步不了:

          

        value在對象屬性更新后, 屬性的值還是原來的值. 例如當訪問者輸入一些內容的時候, 如果input被改變或者重新被設置,原始值可以用來做檢查.

        class/className

        名稱不一樣: "class"屬性與之對應的對象屬性是"className"

        因為 "class" 是在javascript中是保留字, 所以則會選擇另外的名稱className來與class想匹配

         

        提示, 這個例子在IE<9下是不能正常運行的, 因為奇怪的方式屬性和對象屬性混合使用.

        我們可以讓它執行好, 但是僅使用className對象屬性來管理class,不是attribute.

        1. 指定一個div到一個變量

        2. 獲取data-widgetName的屬性值

        文檔

         Select the genre 

        有趣的老版本IE

        首先,IE<9同步所有的對象屬性和屬性:

        document.body.setAttribute('try-in-ie', 123)alert( document.body['try-in-ie'] === 123 ) // true in IE<9

        類型也是一樣的.屬性沒有變成一個字符串.

        其次,在IE<8(或者IE8兼容IE7的模式)對象屬性和屬性一樣.會出現一些有趣的結果.

        例如, 對象屬性名稱是大小寫區分的,而屬性名稱則不是. 如果瀏覽器認為他們是一樣的, 那下面的代碼結果會是什么樣?

        document.body.abba = 1 // assign property (now can read it by getAttribute)document.body.ABBA = 5 // assign property with another case// must get a property named 'ABba' in case-insensitive way.alert( document.body.getAttribute('ABba') ) // ??

        瀏覽器避開這些陷阱,則給他們設置一個默認值. 在IE中getAttribute方法提供了可選的第二個參數, 來決定是否大小寫區分. 可以看看MSDN getAttribute的詳細說明.

        所有瀏覽器, 除了IE<9, "class"屬性改變class, 不要使用attribute. 同時使用className屬性

        兼容IE, 正確的使用屬性.或者換句話說, 試著所有時候都使用對象屬性, 除非你真的需要一個屬性的時候.

        需要屬性的時候:

        1. 獲取一個自定義的屬性時, 因為DOM對象屬性中沒有同步這些屬性.

        2. 獲取標準的HTML屬性的原始值,例如 .

        屬性作為DOM節點

        屬性節點同樣可以訪問,通過elem.attributes集合.

        在 attributes 集合中, 每一個屬性通過一個特殊的DOM節點呈現. name, value和另外的對象屬性.

        例如:

        text

        順便說說, IE<8 和 IE8 兼容模式下, 關于 "style"屬性是表現得不一樣. 猜猜是為什么?.

        屬性DOM節點不是document數的一部分, 他們從他們的元素標簽中訪問.

        總結

        在DOM模式中,屬性和對象屬性都是核心的特點.

        下面表格中表現了他們的關系和不同:

        Properties Attributes
        任何值 String
        名稱大小寫區分 不區分大小寫
        innerHTML中不會呈現 innerHTML中可見
        標準的DOM對象屬性和屬性是同步的, 自定義的不是.
        屬性和對象屬性在IE<8或者IE8兼容模式下混合使用會導致一些不可預料的結果

        如果你想有自定義的屬性, 可以通過HTML5中有效的data-*屬性來完成. 不明白的可以看HTML5標準.

        在實際當中, 98%例子中, DOM對象屬性被使用.

        兩種情況下使用屬性:

        1. 自定義的HTML屬性, 因為DOM對象屬性不同步.

        2. 去訪問一個創建在HTML屬性中的, 沒有同步的DOM對象, 且確保你需要這個屬性. 比如 INPUT的value.

        本文屬于吳統威的博客, 微信公眾號:bianchengderen,QQ群:186659233的原創文章,轉載時請注明出處及相應鏈接:http://www.wutongwei.com/front/infor_showone.tweb?id=226 ,歡迎大家傳播與分享.

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

        文檔

        DOM之屬性(attribute)和自定義對象屬性(property)_html/css_WEB-ITnose

        DOM之屬性(attribute)和自定義對象屬性(property)_html/css_WEB-ITnose:DOM節點有一些屬性和對象屬性. 有時候我們會把他們搞混淆, 因為他們是相關聯的, 但是他們真的是兩個不同的東西. 特性 DOM節點是一個對象. 因此它可以存儲自定義的對象屬性和方法,就像任何的Javascript對象. 下面的例子是指定分配一個對象給document.
        推薦度:
        標簽: html 屬性 css
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲国产成人精品无码久久久久久综合 | 无忧传媒视频免费观看入口| 亚洲成人免费电影| 亚洲AV日韩精品久久久久| 久久国产免费观看精品| 国产亚洲成AV人片在线观黄桃 | 亚洲国产成a人v在线| h在线观看视频免费网站| 亚洲喷奶水中文字幕电影| 在线看片v免费观看视频777| 亚洲国产精品久久网午夜| 一个人免费观看www视频在线| 国产精品亚洲专区在线观看| 妞干网在线免费观看| 亚洲色大成网站www永久网站| 免费看美女被靠到爽的视频| 精品亚洲国产成人av| 亚洲成年人啊啊aa在线观看| AAAAA级少妇高潮大片免费看| 久久综合图区亚洲综合图区| 3344永久在线观看视频免费首页| 亚洲成人福利网站| 日韩视频在线免费| 一级看片免费视频| 亚洲午夜久久影院| 青青青国产免费一夜七次郎| 一级中文字幕免费乱码专区| 亚洲AV无码一区二区二三区入口| 午夜国产精品免费观看| 色视频在线观看免费| 亚洲成AV人片在| 在线观看免费大黄网站| 99re6在线视频精品免费| 亚洲精品免费在线| 国产免费黄色大片| 国产成年无码久久久免费| 亚洲一区二区三区免费视频| 亚洲成人国产精品| 久久99九九国产免费看小说| 一个人看的www免费在线视频| 亚洲综合视频在线观看|