Comment vérifier si un élément existe s'il est créé par la méthode .append()
? $('elemId').length
ne fonctionne pas pour moi.
$('elemId').length
ne fonctionne pas pour moi.
Vous devez mettre #
avant l'élément id:
$('#elemId').length
---^
Avec JavaScript vanille, vous n’avez pas besoin du hachage (#
) par exemple. document.getElementById('id_here')
, cependant, lorsque vous utilisez jQuery, vous devez mettre un hachage sur les éléments cibles en fonction de id
, tout comme CSS.
Essayez de vérifier la longueur du sélecteur, s'il vous renvoie quelque chose, alors l'élément doit exister sinon.
if( $('#selector').length ) // use this if you are using id to check
{
// it exists
}
if( $('.selector').length ) // use this if you are using class to check
{
// it exists
}
Essaye ça:
if ($("#mydiv").length > 0){
// do something here
}
La propriété de longueur retournera zéro si l'élément n'existe pas.
Comment vérifier si un élément existe
if ($("#mydiv").length){ }
S'il s'agit de 0
, il sera évalué à false
, rien de plus que cela true
.
Il n'y a pas besoin de plus que, moins que la comparaison.
votre elemId
comme son nom l'indique, est un attribut Id
. Vous pouvez ainsi vérifier s'il existe:
JavaScript JavaScript: si vous avez des sélecteurs plus avancés:
//you can use it for more advanced selectors
if(document.querySelectorAll("#elemId").length){}
if(document.querySelector("#elemId")){}
//you can use it if your selector has only an Id attribute
if(document.getElementById("elemId")){}
jQuery:
if(jQuery("#elemId").length){}
Vous pouvez également utiliser une notation de type tableau et vérifier le premier élément. Le premier élément d'un tableau ou d'une collection vide est simplement undefined
. Vous obtenez ainsi le comportement "normal" de vérité/falsification javascript:
var el = $('body')[0];
if (el) {
console.log('element found', el);
}
if (!el) {
console.log('no element found');
}
Vous pouvez utiliser JS natif pour tester l'existence d'un objet:
if (document.getElementById('elemId') instanceof Object){
// do something here
}
N'oubliez pas que jQuery n'est rien de plus qu'un wrapper sophistiqué (et très utile) autour des commandes et propriétés Javascript natives