While other answers are technically correct, they omit the fact that SVG provides an alternative mechanism for data-*
. SVG allows any attribute and tag to be included, as long as it doesn’t conflict with existing ones (in other words: you should use namespaces).
To use this (equivalent) mechanism:
- use
mydata:id
instead ofdata-myid
, like this:<p mydata:id="123456">
- make sure you define the namespace in SVG opening tag, like this:
<svg xmlns:mydata="http://www.myexample.com/whatever">
EDIT: SVG2, currently W3C Candidate Recommendation (04 October 2018), will support data-
directly (without namespaces, the same as HTML). It will take some time before the support is widespread though. Thanks @cvrebert for pointing this out.