DOM自定義屬性操作


    DOM標准    

(一)核心DOM

可以操作一切結構化文檔的API,包括HTML和XML,核心DOM是萬能的,但又是繁瑣的。

(二)HTML DOM

專門操作HTML文檔的簡化版DOM API,僅對常用的復雜的API進行了簡化,HTML DOM不是萬能的,但更加簡單。

注意:在開發中先使用簡單的,簡單的不行再使用復雜的進行補充,以實現效果為目標。

 

  自定義屬性的操作 


 一、獲取屬性值

element.屬性 獲取屬性值

element.getAttribute('屬性');  獲取自定義屬性(我們自己添加的屬性)

 區別:

element.屬性;  獲取元素內置屬性(元素本身自帶的屬性)

element.getAttribute('屬性');   主要獲得自定義的屬性(標准)程序員自定義的屬性

注意:

class是保留關鍵字,但是在element.getAttribute('屬性'); 方法中可以直接使用;element.屬性 寫法則需要使用className代替

實例:


 獲取div元素中的自帶屬性和自定義屬性

 1 <body>
 2     <div class="first" index="ww"></div>
 3 <script>
 4     var div = document.querySelector('div');
 5     //element.屬性  獲取內置屬性(元素本身自帶的屬性)
 6     console.log(div.className);
 7     //element.getAttribute('屬性')  獲得自定義屬性
 8     console.log(div.getAttribute('index'));
 9     console.log(div.getAttribute('class'));
10 </script>
11 </body>
12 </html>

 

  二、設置屬性值  

element.屬性 = '值';   設置內置屬性值

element.setAttribute('屬性','值');  主要針對自定義屬性

實例:


 

<body>
    <div class="first" index="ww" id='ss'></div>
<script>
    var div = document.querySelector('div'); console.log(111111); // element.屬性 = ‘值’
 div.id = 'box'; div.className = 'navs'; //element.setAttribute('屬性名','值')
 div.setAttribute('index','111'); div.setAttribute('class','footer'); </script>
</body>

 

   三、移除屬性   

element.removeAttribute("屬性名"); 移除指定的屬性

實例:


 

<body>
    <div class="first" index="ww" id='ss'></div>
<script>
    var div = document.querySelector('div'); div.removeAttribute('index'); </script>
</body>

 

   四、判斷是否包含指定的屬性   

element.hasAttribute("屬性名");  判斷元素里面有沒有對應的屬性名

結果會返回布爾類型的值,true或false

實例:


 

<body>
    <div class="first" index="ww" id='ss'></div>
<script>
    var div = document.querySelector('div'); div.removeAttribute('index'); console.log(div.hasAttribute('index')); console.log(div.hasAttribute('class')); </script>
</body>

 

   五、HTML5自定義屬性   

自定義屬性的目的:是為了保存和使用數據,有些數據可以保存到頁面中而不用保存到數據庫中

自定義屬性獲取是通過 getAttribute('屬性') 方法獲取

但是有些自定義屬性很容易引起歧義,不容易判斷到底是元素內部的屬性還是自定義屬性

H5中為我們新增了標准

(一)設置H5自定義屬性

H5中規定自定義屬性需要以  data- 開頭做屬性名並且賦值

例如:<div data-index="ww" ></div>

也可以使用JS設置新的自定義屬性

例如:element.setAttribute('data-index','111');

 

(二)獲取H5自定義屬性

1、兼容性較好的獲取方法

getAttribute('屬性')

2、H5新增方法(從IE11才開始支持,兼容性較差)

 element.dataset.屬性;

element.dataset[ '屬性' ];

dataset 可以理解成 集合 的意思,獲得所有以 data-開頭的 自定義屬性,data-開頭的自定義屬性的集合

注意:如果自定義屬性里面有多個 - 連接的屬性名稱,使用H5新增方法獲取的時候需要采用 駝峰命名法

實例:


 

 1 <body>
 2     <div data-index="ww" data-time='20' data-list-name='name'></div>
 3 <script>
 4     var div = document.querySelector('div');  5  console.log(div.getAttribute('data-list-name'));  6     //H5新增獲取屬性的方法
 7  console.log(div.dataset);  8  console.log(div.dataset.index);  9  console.log(div.dataset['index']); 10  console.log(div.dataset.listName); 11  console.log(div.dataset['listName']); 12 </script>
13 </body>

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM