JavaScript: Comment obtenir de l'élément parent par le sélecteur?
Exemple:
<div someAttr="parentDiv. We need to get it from child.">
<table> ....
<td> <div id="myDiv"></div> </td>
... </table>
</div>
Je veux obtenir parent par certains sélecteur de inner élément div (dans l'exemple avec myDiv classe). Comment l'obtenir SANS jQuery, seulement JS?
Quelque chose comme:
var div = document.getElementById('myDiv');
div.someParentFindMethod('some selector');
- Google ne donnent que jQuery.les parents, partout.
- Double Possible de Trouver le plus proche de l'ancêtre de l'élément qui a une classe spécifique
- Veuillez mettre à jour réponse sélectionnée par la suggestion de @soullivaneuh ci-dessous.
Vous devez vous connecter pour publier un commentaire.
Voici le plus de base version:
Vous pouvez utiliser
plus proche()
dans les navigateurs modernes:Utilisation de la détection d'objet de fournir une polyfill ou méthode alternative pour assurer la compatibilité avec IE.
Trouve le plus proche parent (ou de l'élément lui-même) qui correspond au sélecteur de donnée. Également inclus est un sélecteur pour arrêter la recherche, dans le cas où vous connaissez un ancêtre commun que vous devriez arrêter de chercher à.
À l'aide de sangsue de réponse avec indexOf (pour soutenir IE)
C'est à l'aide de ce sangsue parlé, mais le faire fonctionner pour IE (IE ne prend pas en charge les matchs):
Il n'est pas parfait, mais il fonctionne si le sélecteur est assez unique afin de ne pas accidentellement correspondre à l'élément incorrect.
Voici une solution récursive:
exemple simple d'une fonction parent_by_selector qui de retour d'un parent ou null (pas de sélecteur de matchs):
Ici est simple moyen d'accès parent id
va faire de la magie pour vous d'accéder à la div parent.