JS hasAtsortingbute avec la valeur d’atsortingbut de données

Existe-t-il une méthode native, sans JQuery, pour vérifier si un élément dom a l’atsortingbut avec la valeur sélectionnée par exemple: // suppose que doc a data-mod = “do” défini

ce sera vrai

document.hasAtsortingbute('data-mod');

mais ce sera faux

document.hasAtsortingbute('data-mod="do"')

existe-t-il un moyen de rechercher en mode natif un atsortingbut de données sur un élément DOM avec la valeur?

Vous devez accéder à la valeur de l’atsortingbut via getAtsortingbute et la comparer à la chaîne attendue:

 if (node.getAtsortingbute('data-mod') === 'do') { ... } 

Pour les navigateurs modernes, vous pouvez utiliser des matches :

 if (node.matches('[data-mod="do"]')) { ... } 

… Ou pour les atsortingbuts [data-*] vous pouvez utiliser dataset :

 if (node.dataset.mod === 'do') { ... } 

Vous pouvez le faire correctement avec dataset ,

 if (elementNode.dataset['mod'] == 'do') { //your code goes here. } 

En utilisant dataset vous pouvez accéder facilement aux atsortingbuts de données d’un élément.

Oui, ça y est:

 var selector = document.getElementsByTagName("H1")[0]; //Exemple of a h1 if (selector.getAtsortingbute('data-mod') == "do"){ //Do your logic } 

Cela peut fonctionner …

 var list = document.querySelectorAll('[data-mod="do"]'); 

Vous pouvez utiliser Element.atsortingbutes

 function data(el, dataName, dataValue) { for (var i = 0; i < el.attributes.length; i++) { if (/^(data)(?=-\w+|=[^=]*$|=$|$)/g.test(el.attributes[i].name)) { if (dataName && el.attributes[i].name === "data-" + dataName) { if (dataName && dataValue && el.attributes[i].name === "data-" + dataName && el.attributes[i].value === dataValue) { return true } return true } else { return true } } } return false } var elems = document.querySelectorAll("div"); for (var i = 0; i < elems.length; i++) { console.log(data(elems[i])) } var _name = "prop", _value = "123"; console.log("element #" + elems[1].id +" has `data-*` attribute name:" +_name +", value:"+_value , data(elems[1], _name, _value)) 
 
abc
123
no data