JQuery: Vérifier si un élément existe à côté '.remove()'
Je sais que vous pouvez vérifier si un élément existe avec $('div').length
, mais quand un élément est détruit à l'aide de .remove()
, .length
encore les rapports de la div existe. Comment puis-je savoir si oui ou non il existe réellement?
if ($('div').length) {
alert('yes')
} else {
alert('no')
}
Err.. Pas exactement sûr de ce que tu veux dire. Si vous utilisez
Qui alerte oui, tant qu'il y a une div sur la page. Vous pouvez utiliser un identifiant permettant de tester si un élément spécifique a été supprimé.
$('div') est un exemple. Je n'étais pas de test pour voir si il y avait des divs dans l'ensemble de la page.
Pour plus générique, la question de "comment faire pour vérifier si un élément ou un de ses parents a été supprimé", voir Comment puis-je vérifier si un élément jQuery est dans les DOM?
.remove()
, l'élément est supprimé de la DOM. La longueur des rapports le résultat attendu: jsfiddle.net/TmPBCQui alerte oui, tant qu'il y a une div sur la page. Vous pouvez utiliser un identifiant permettant de tester si un élément spécifique a été supprimé.
$('div') est un exemple. Je n'étais pas de test pour voir si il y avait des divs dans l'ensemble de la page.
Pour plus générique, la question de "comment faire pour vérifier si un élément ou un de ses parents a été supprimé", voir Comment puis-je vérifier si un élément jQuery est dans les DOM?
OriginalL'auteur gavsiu | 2011-07-15
Vous devez vous connecter pour publier un commentaire.
Vérifier si elle a un parent:
ou si vous avez une référence à l'élément DOM:
Évidemment, cela ne fonctionne que pour les éléments que vous avez déjà une référence.
FWIW, l'élément lui-même existe toujours, il est tout simplement pas partie de l'arborescence DOM.
$element
a été supprimé depuis le DOM. Par exemple,$element.parent().remove()
.$element.parent().length
est encore de 1, même si$element
n'est pas dans l'arborescence DOM.Eh bien, je suppose que
.remove()
a été réalisée sur l'élément, tel que mentionné dans la question. De toute façon, +1 pour ta solution, mais je pense qu'il est suffisant de regarder pourbody
au lieu dehtml
.OriginalL'auteur Felix Kling
En existe, vous voulez dire que vous souhaitez voir s'il existe dans les dom? Vérifiez pour voir si "html" est un ancêtre:
Ou de l'utilisation
.is("html *")
. Elle retourne un booléen, ce qui est pratique:Si il y a une différence à tous,
.closest()
serait plus efficace. Selon la façon dont.is()
est mis en œuvre, il pourrait être presque aussi efficace que.closest()
, ou il pourrait être bien pire.OriginalL'auteur gilly3
Je cite cette réponse.
OriginalL'auteur user1444978
vous pouvez obtenir le parent de l'élément avant de retirer l'élément et après que l'élément a été supprimé, vous pouvez vérifier comme ça!
bien sûr élément devra être certains sélecteur jquery
OriginalL'auteur Ehtesham