Ricerca…


Sintassi

  • var x = HTMLElement.dataset. *;
  • HTMLElement.dataset. * = "Valore";

Osservazioni

Documentazione MDN: utilizzo degli attributi dei dati .

Accesso agli attributi dei dati

Utilizzando la proprietà del set di dati

La nuova proprietà del dataset consente l'accesso (sia per la lettura che per la scrittura) a tutti gli attributi dati data-* su qualsiasi elemento.

<p>Countries:</p>
<ul>
  <li id="C1" onclick="showDetails(this)" data-id="US" data-dial-code="1">USA</li>
  <li id="C2" onclick="showDetails(this)" data-id="CA" data-dial-code="1">Canada</li>
  <li id="C3" onclick="showDetails(this)" data-id="FF" data-dial-code="3">France</li>
</ul>
<button type="button" onclick="correctDetails()">Correct Country Details</button>
<script>
function showDetails(item) {
    var msg = item.innerHTML
            + "\r\nISO ID: " + item.dataset.id
            + "\r\nDial Code: " + item.dataset.dialCode;
    alert(msg);
}

function correctDetails(item) {
    var item = document.getEmementById("C3");
    item.dataset.id = "FR";
    item.dataset.dialCode = "33";
}
</script>

Nota: la proprietà del dataset è supportata solo nei browser moderni ed è leggermente più lenta dei metodi getAttribute e setAttribute supportati da tutti i browser.

Utilizzo dei metodi getAttribute e setAttribute

Se si desidera supportare i browser precedenti prima di HTML5, è possibile utilizzare i metodi getAttribute e setAttribute utilizzati per accedere a qualsiasi attributo, inclusi gli attributi dei dati. Le due funzioni nell'esempio sopra possono essere scritte in questo modo:

<script>
function showDetails(item) {
    var msg = item.innerHTML
            + "\r\nISO ID: " + item.getAttribute("data-id")
            + "\r\nDial Code: " + item.getAttribute("data-dial-code");
    alert(msg);
}

function correctDetails(item) {
    var item = document.getEmementById("C3");
    item.setAttribute("id", "FR");
    item.setAttribute("data-dial-code", "33");
}
</script>


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow