Bisakah saya menambahkan atribut khusus ke tag HTML seperti berikut ini?
<tag myAttri="myVal" />
Bisakah saya menambahkan atribut khusus ke tag HTML seperti berikut ini?
<tag myAttri="myVal" />
Jawaban:
Anda dapat mengubah deklarasi! DOCTYPE Anda (yaitu DTD) untuk mengizinkannya, sehingga dokumen [XML] tetap valid:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
[
<!ATTLIST tag myAttri CDATA #IMPLIED>
]>
#IMPLIED
berarti itu adalah atribut opsional, atau Anda dapat menggunakan #REQUIRED
, dll.
Informasi lebih lanjut ada di DTD - Attributes .
<meta http-equiv="content-type" content="application/xhtml+xml" />
.
data-
.
Anda dapat menambahkan atribut khusus ke elemen Anda sesuka hati. Tetapi itu akan membuat dokumen Anda tidak valid.
Di HTML 5 Anda akan memiliki kesempatan untuk menggunakan atribut data khusus yang diawali dengandata-
.
|
tidak diizinkan dalam csshref
Bagaimanapun juga, , tetapi itulah yang diperlukan untuk Google Fonts
Tidak, ini akan memecah validasi.
Dalam HTML 5 Anda dapat / akan dapat menambahkan atribut khusus. Sesuatu seperti ini:
<tag data-myAttri="myVal" />
Fungsi jQuery data()
memungkinkan Anda untuk mengaitkan data sewenang-wenang dengan elemen DOM. Ini sebuah contoh .
Di HTML5: ya: gunakan atribut data .
<ul>
<li data-animal-type="bird">Owl</li>
<li data-animal-type="fish">Salmon</li>
<li data-animal-type="spider">Tarantula</li>
</ul>
Ya, Anda dapat, Anda melakukannya di pertanyaan itu sendiri: <html myAttri="myVal"/>
.
var demo = document.getElementById("demo")
console.log(demo.dataset.myvar)
// or
alert(demo.dataset.myvar)
//this will show in console the value of myvar
<div id="demo" data-myvar="foo">anything</div>
Ya kamu bisa melakukannya!
Memiliki HTML
tag berikutnya :
<tag key="value"/>
Kita dapat mengakses atribut mereka dengan JavaScript
:
element.getAttribute('key'); // Getter
element.setAttribute('key', 'value'); // Setter
Element.setAttribute()
letakkan atribut di HTML
tag jika tidak ada. Jadi, Anda tidak perlu mendeklarasikannya dalam HTML
kode jika Anda ingin mengaturnya JavaScript
.
key
: bisa berupa nama yang Anda inginkan untuk atribut, sementara belum digunakan untuk tag saat ini.
value
: selalu berupa string yang berisi apa yang Anda butuhkan.
Berikut ini contohnya:
document.getElementsByTagName("html").foo="bar"
Berikut adalah contoh lain cara mengatur atribut khusus ke dalam elemen tag tubuh:
document.getElementsByTagName('body')[0].dataset.attr1 = "foo";
document.getElementsByTagName('body')[0].dataset.attr2 = "bar";
Kemudian baca atributnya dengan:
attr1 = document.getElementsByTagName('body')[0].dataset.attr1
attr2 = document.getElementsByTagName('body')[0].dataset.attr2
Anda dapat menguji kode di atas di Konsol di DevTools, mis
gunakan data apa saja, saya sering menggunakannya
<aside data-area="asidetop" data-type="responsive" class="top">
data-*
nilai dari JavaScript?
Pendekatan lain, yang bersih dan akan membuat dokumen tetap valid, adalah menggabungkan data yang Anda inginkan ke dalam tag lain misalnya id, kemudian gunakan split untuk mengambil apa yang Anda inginkan saat Anda menginginkannya.
<html>
<script>
function demonstrate(){
var x = document.getElementById("example data").querySelectorAll("input");
console.log(x);
for(i=0;i<x.length;i++){
var line_to_illustrate = x[i].id + ":" + document.getElementById ( x[i].id ).value;
//concatenated values
console.log("this is all together: " + line_to_illustrate);
//split values
var split_line_to_illustrate = line_to_illustrate.split(":");
for(j=0;j<split_line_to_illustrate.length;j++){
console.log("item " + j+ " is: " + split_line_to_illustrate[j]);
}
}
}
</script>
<body>
<div id="example data">
<!-- consider the id values representing a 'from-to' relationship -->
<input id="1:2" type="number" name="quantity" min="0" max="9" value="2">
<input id="1:4" type="number" name="quantity" min="0" max="9" value="1">
<input id="3:6" type="number" name="quantity" min="0" max="9" value="5">
</div>
<input type="button" name="" id="?" value="show me" onclick="demonstrate()"/>
</body>
</html>
Anda dapat menambahkan, tetapi kemudian Anda harus menulis satu baris kode JavaScript juga,
document.createElement('tag');
untuk memastikan semuanya jatuh pada tempatnya. Maksud saya Internet Explorer :)
<tag ...>
sini tampaknya berarti sembarang tag HTML.
baik! Anda sebenarnya dapat membuat banyak atribut HTML khusus dengan menyamarkan atribut data sesuai keinginan Anda.
misalnya.
[attribute='value']{
color:red;
}
<span attribute="value" >hello world</span>
Tampaknya berhasil tetapi itu akan membatalkan dokumen Anda, tidak perlu menggunakan JScript untuk Anda memiliki atribut khusus atau bahkan elemen kecuali Anda harus, Anda hanya perlu memperlakukan atribut yang dirumuskan (kustom) baru Anda seperti cara Anda memperlakukan Anda atribut "data"
Ingat "tidak valid" tidak berarti apa-apa. Dokumen akan dimuat dengan baik setiap saat. dan beberapa browser benar-benar akan memvalidasi dokumen Anda hanya dengan kehadiran DOCTYPE ....., Anda benar-benar tahu apa yang saya maksud.
Anda dapat melakukan sesuatu seperti ini untuk mengekstraksi nilai yang Anda inginkan dari JavaScript alih-alih atribut:
<a href='#' class='click'>
<span style='display:none;'>value for JavaScript</span>some text
</a>
<input type="hidden" value="...">
. Namun, pertimbangkan perbedaan antara tipe data yang Anda masukkan ke dalam berbagai atribut berbeda dengan data yang mungkin Anda masukkan ke dalam bidang tersembunyi. Menyembunyikan <span>
(dari semua hal) <a>
demi mempertahankan sepotong metadata bukanlah langkah yang baik. Ini akan menjadi khas untuk situs Anda dan sangat tergantung pada JS (degradasi anggun, orang).