J'essaie de capturer la valeur de l'attribut ID du 3e parent vers le haut lorsqu'un lien est cliqué. Exemple:
<div id="First Div">
<div class="class A">
<div class="class B"></div>
<div class="class C"></div>
<div class="class D">
<i class="link A">Clickable Element</i>
</div>
</div>
</div>
J'ai besoin de stocker la valeur "First Div" dans une variable lorsque "Clickable Element" est cliqué.
3 réponses
Tout d'abord, le id
ne doit pas contenir d'espaces, ajoutez un trait de soulignement à la place.
Vous pouvez attacher un événement de clic à la classe link
et cliquer sur aller au parent qui a un attribut id
et l'enregistrer dans la variable:
$('.link').on('click', function(){
var id_attribute=$(this).closest('div[id]').prop('id');
})
J'espère que cela t'aides.
$('.link').on('click', function(){
var id_attribute=$(this).closest('div[id]').prop('id');
alert(id_attribute);
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="First_Div">
<div class="class A">
<div class="class B"></div>
<div class="class C"></div>
<div class="class D">
<i class="link A">Clickable Element</i>
</div>
</div>
</div>
Vous pouvez utiliser la méthode jquery parents () qui parcourra le DOM jusqu'à ce qu'il trouve une correspondance.
$(this).parents().find('div#First_div').attr('id');
http://api.jquery.com/parents/
Vous pouvez le faire en utilisant:
$(this).parent().parent().parent().attr("id");
Mais ce n'est pas une bonne solution, car vous devez vous assurer que ces parents existent réellement.
Questions connexes
De nouvelles questions
javascript
Pour des questions concernant la programmation dans ECMAScript (JavaScript / JS) et ses divers dialectes / implémentations (hors ActionScript). Veuillez inclure toutes les balises pertinentes dans votre question; par exemple, [node.js], [jquery], [json], etc.