2017-04-21 1 views
2

Ich benutze den folgenden Code, um zu versuchen, die href-Daten von einem anderen Element zu bekommen, es bleibt "undefined" zurück, was mache ich falsch?HREF-Attribut aus dem untergeordneten jQuery von Geschwistern abrufen?

$('.linkbutton').bind('click', function(e) { 
     e.preventDefault(); 
     var flagURL = $(this).siblings().next('.flag-action').attr('href'); 
     console.log(flagURL); 
    }); 
<div class="linkbutton"> 
<h4 class="quoteflag"> 
    <a href="/demo/url/here" title=" " class="flag-action"> 
    </a> 
</h4> 
+0

'Geschwister()' geben Sie alle Elemente aus dem gleichen lvl wie ausgewählte Element, so dass Sie 'wählen .linkbutton' versuchen, alle Elemente aus dem gleichen lvl zu wählen, und wählen Sie dann Nächstes Element mit Flag-Action-Klasse, lesen Sie mehr über https://api.jquery.com/siblings/ und https://api.jquery.com/each/ – Sojtin

Antwort

0

statt

var flagURL = $(this).siblings().next('.flag-action').attr('href'); 

versuchen, den folgenden Code:

var flagURL = $(this).siblings().find('.flag-action').attr('href'); 

Da Selektor next() wird der nächste Geschwister zurück. Aber Sie brauchen das Kind des nächsten Geschwisters. Find() Selektor wird Ihnen alle Nachkommen eines bestimmten Elements geben. In Ihrem Fall können Sie auch den children() - Selektor anstelle von find() verwenden, da Sie versuchen, das direkte Kind des H4-Elements zu finden.

3

werden Sie haben .find() zu verwenden und nicht .next() weil die flag-action ein Kind ist und nicht ein Element neben dem quoteflag

$('.linkbutton').bind('click', function(e) { 
 
    e.preventDefault(); 
 
    var flagURL = $(this).siblings().find(".flag-action").attr("href"); 
 
    console.log(flagURL); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="linkbutton">click</div> 
 
<h4 class="quoteflag"> 
 
    <a href="/demo/url/here" title=" " class="flag-action"> 
 
    </a> 
 
</h4>

1

Sie können href erhalten, indem find('.flag-action') als a verwenden, ist ein Kind .linkbutton mag:

$('.linkbutton').bind('click', function(e) { 
 
     e.preventDefault(); 
 
     var flagURL = $(this).find('.flag-action').attr('href'); 
 
     alert(flagURL); 
 
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<div class="linkbutton">Click here 
 
<h4 class="quoteflagdiv"> 
 
    <a href="/demo/url/here" title=" " class="flag-action"> 
 
    </a> 
 
</h4>

0

$('.linkbutton').bind('click', function(e) { 
 
     e.preventDefault(); 
 
     
 
     var flagURL = $(this).siblings().find('.flag-action').attr('href'); 
 
     console.log(flagURL); 
 
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="linkbutton">linkbutton div</div> 
 
<h4 class="quoteflag"> 
 
    <a href="/demo/url/here" title=" " class="flag-action"> 
 
    </a> 
 
</h4>

Verwandte Themen