Tengo el siguiente html:
<span data-typeId="123" data-type="topic" data-points="-1" data-important="true" id="the-span"></span>¿Es posible obtener los atributos que comienzan data-y usarlos en el código JavaScript como el código a continuación? Por ahora me sale nullcomo resultado.
document.getElementById("the-span").addEventListener("click", function(){
    var json = JSON.stringify({
        id: parseInt(this.typeId),
        subject: this.datatype,
        points: parseInt(this.points),
        user: "H. Pauwelyn"
    });
});
                    
                        javascript
                                html
                                custom-data-attribute
                                
                    
                    
                        H. Pauwelyn
fuente
                
                fuente

Respuestas:
Necesita acceder a la
datasetpropiedad :Resultado:
fuente
Debido a que la
datasetpropiedad no era compatible con Internet Explorer hasta la versión 11, puede utilizargetAttribute()en su lugar:Documentación del conjunto de datos
documentación de getAttribute
fuente
Puedes acceder a él como
etc. Entonces en este caso:
this.dataset.pointsfuente
También puede obtener los atributos con el método getAttribute () que devolverá el valor de un atributo HTML específico.
fuente
si está apuntando al atributo de datos en el elemento Html,
document.datasetno trabajaráDeberías usar
o
fuente
Los navegadores modernos aceptan HTML y SVG DOMnode.dataset
Uso de la propiedad de conjunto de datos de nodo DOM de Javascript puro .
Es un antiguo estándar Javascript para elementos HTML (desde Chorme 8 y Firefox 6) pero nuevo para SVG (desde el año 2017 con Chorme 55.xy Firefox 51) ... No es un problema para SVG porque en la actualidad (2019) El uso compartido de la versión está dominado por los navegadores modernos.
Los valores de los valores-clave del conjunto de datos son cadenas puras, pero una buena práctica es adoptar el formato de cadena JSON para tipos de datos que no sean cadenas, para analizarlo
JSON.parse().Usar la propiedad del conjunto de datos en cualquier contexto
Fragmento de código para obtener y establecer conjuntos de datos de valores clave en contextos HTML y SVG.
fuente
Alrededor de 2019, usando jquery, se puede acceder a esto usando
$('#DOMId').data('typeId')donde$('#DOMId')está el selector de jquery para su elemento span.fuente
Pruebe esto en lugar de su código:
fuente
.data('type');en su lugar.JSONresultado, no unoalertdeldata-typeatributo.