HTML 5のdata-*カスタム属性
5177 ワード
HTML 5に追加された新しい機能は、カスタムデータ属性、すなわち
たとえば
この「オリジナル」のカスタム属性は、上の
Datasetプロパティdata-*カスタムプロパティの値へのアクセス
この方法は、1つの要素の
この方法を使用する場合、
また、
もしあなたが
美しく見えますが、残念なことに、新しい
data-プロパティセレクタについて
実際に開発すると、カスタム
また、次の例のように、
転載:http://www.css88.com/archives/4715
data-*
カスタムプロパティです.HTML 5では、data-
を接頭辞として、必要なカスタム属性を設定して、いくつかのデータの保存を行うことができます.もちろん、高度なブラウザでは、スクリプトによる定義とデータアクセスが可能です.プロジェクトの実践に非常に役立ちます.たとえば
<div id = "user" uid = "12345" uname = " " > </div>
<script>
// getAttribute data-
var user = document . getElementById ( 'user' ) ;
var userName = plant . getAttribute ( 'uname' ) ; // userName = ' '
var userId = plant . getAttribute ( 'uid' ) ; // userId = '12345'
// setAttribute data-
user . setAttribute ( 'site' , 'http://www.css88.com' ) ;
</script>
この「オリジナル」のカスタム属性は、上の
data-*
カスタム属性と変わらず、知識属性名が異なります.Datasetプロパティdata-*カスタムプロパティの値へのアクセス
この方法は、1つの要素の
dataset
属性にアクセスすることによってdata-*
カスタム属性の値にアクセスする.このdataset
属性は、HTML 5 JavaScript APIの一部であり、選択要素data-
属性のすべてのDOMStringMapオブジェクトを返すために使用されます.この方法を使用する場合、
data-uid
などの完全な属性名を使用してデータにアクセスするのではなく、data-
接頭辞を削除する必要があります.また、
data-
属性名にハイフンが含まれている場合、例えばdata-date-of-birth
はハイフンが削除され、アルパカ式のネーミングに変換され、前の属性名が変換された後はdateOfBirth
であるべきである.<div id="user" data-id="1234567890" data-name=" " data-date-of-birth> </div>
<script type="text/javascript">
var el = document.querySelector('#user');
console.log(el.id); // 'user'
console.log(el.dataset);// DOMStringMap
console.log(el.dataset.id); // '1234567890'
console.log(el.dataset.name); // ' '
console.log(el.dataset.dateOfBirth); // ''
el.dataset.dateOfBirth = '1985-01-05'; // data-date-of-birth .
console.log('someDataAttr' in el.dataset);//false
el.dataset.someDataAttr = 'mydata';
console.log('someDataAttr' in el.dataset);//true
</script>
もしあなたが
data-
を削除したいなら、そうすることができます:delete el. dataset . id ;あるいはel.dataset . id = null ; . 美しく見えますが、残念なことに、新しい
dataset
属性はChrome 8+Firefox(Gecko)6.0+Internet Explorer 11+Opera 11.10+Safari 6+ブラウザでのみ実現されるので、その間はgetAttributeとsetAttributeで操作するのがベストです.data-プロパティセレクタについて
実際に開発すると、カスタム
data-
のプロパティに基づいて関連する要素を選択することができます.たとえばquerySelectorAllを使用して要素を選択します.// 'data-flowering'
document . querySelectorAll ( '[data-flowering]' ) ;
// 'data-text-colour' red
document . querySelectorAll ( '[data-text-colour="red"]' ) ;
また、次の例のように、
data-
属性値を使用して、対応する要素に対してCSSスタイルを設定することもできます.<style type ="text/css">
.user {
width : 256px ;
height : 200px ;
}
.user[data-name='feiwen'] {
color : brown
}
.user[data-name='css'] {
color : red
}
</style>
<div class = "user" data-id = "123" data-name = "feiwen" > 1 </div>
<div class = "user" data-id = "124" data-name = "css" > </div>
転載:http://www.css88.com/archives/4715