J'ai une fonction:Comment vérifier si l'objet est un élément DOM?
function Check(o)
{
alert(/* o is a DOM element ? "true" : "false" */);
}
Comment puis-je vérifier si le paramètre o
est un objet DOM ou non?
J'ai une fonction:Comment vérifier si l'objet est un élément DOM?
function Check(o)
{
alert(/* o is a DOM element ? "true" : "false" */);
}
Comment puis-je vérifier si le paramètre o
est un objet DOM ou non?
Un élément DOM implémente l'interface Element
. Ainsi, vous pouvez faire:
function Check(o) {
alert(o instanceof Element);
}
Ceci est la meilleure réponse jusqu'à présent. – geoyws
Vérifiez que la propriété nodeName
existe.
Vérifiez fondamentalement s'il s'agit d'un Node
: regardez le DOM lvl 1 specs, vérifiez la définition du nœud.
Si vous vouliez dire littéralement quand vous avez dit Element
chèque tagName
propriété, regardez la définition des éléments de la même spécification
Pour résumer, procédez
function Check(o)
{
alert(o.tagName ? "true" : "false");
}
pour vérifier si elle est Element DOM ou
function Check(o)
{
alert(o.nodeName ? "true" : "false");
}
pour vérifier si elle est un nœud DOM
ou 'nodeType', ou tout autre élément est une propriété de l'objet racine' DOMElement'. –
Cela ne sonne pas pare-balles. Que faire s'il y a un objet avec ce nom de propriété? Est-ce le seul moyen? Je pensais qu'il pourrait y avoir autre chose ... – BrunoLM
Eh bien, vous pouvez le rendre plus sûr en vérifiant tous (ou au moins deux ou trois) des propriétés et méthodes que ces objets doivent avoir à la hauteur de la spécification, mais il semble que trop ... –
Vous pouvez utiliser la fonction suivante
function isNode(o)
{
return o && 'nodeType' in o;
}
Je crois qu'il devrait être «nodeType» dans o', mais belle idée propre! –
@BenRowe: Nate Barr a raison, '' nodeType'' devrait être entre guillemets, sinon, votre code mène à _ "ReferenceError: nodeType n'est pas défini" _, donc s'il vous plaît éditez votre message! – Sk8erPeter
Merci, je vais faire l'ajustement –
Au lieu de simplement vérifier l'existence d'une propriété, je vérifierais sa valeur spécifique.
Ceci suppose que vous êtes à la recherche d'un élément "type 1".
function Check(o) {
alert(o && o.nodeType && o.nodeType === 1);
}
Vous pouvez toujours obtenir un objet qui a la propriété nodeType
qui ne sont pas en fait un nœud DOM, mais il faudrait aussi avoir une valeur correspondante de 1
pour donner un faux positif.
Une version plus courte serait: obj && obj.nodeType === 1 – Meglio
réponse tardive, mais un fragment de document pourrait être un nœud ainsi:
function isNode(node) {
return node && (node.nodeType === 1 || node.nodeType == 11);
}
Crédits: https://github.com/k-gun/so/blob/4.8.1/so.dom.js#L50
Vous pouvez vérifier si un nœud DOM est un élément avec JQuery:
element.is("*")
N'importe quel noeud DOM ou un type particulier de noeud? – user113716
@patrick Tout. Pour vérifier un spécifique je pourrais juste vérifier le tagName droit? – BrunoLM
Non, le 'tagName' donnera le type d'un élément" type 1 ". Il existe plusieurs autres types de nœuds. – user113716