2016-08-27 3 views
0

ich folgenden dom Baum habe:Erstes Element vor Eltern

<tr class="tomatch" id="123"></tr> 
<tr> 
    <td> 
    <div> 
     <span class="matching"></span> 
    </div> 
    </td> 
</tr> 

Ich habe ein $(this) Objekt .matching Element gesetzt, und ich habe von ihm .tomatch Element zu erhalten. Wie kann ich das machen?

parent() wird nicht funktionieren, habe ich versucht mit .prev() oder prevUntil('.tomatch'), aber es funktioniert auch nicht. Das Gleiche gilt für .closest('.tomatch') und .parents('.tomatch').

Wie kann ich das tun? Ich muss das erste Element vor tr parent abgleichen, da diese Struktur wiederholbar ist.

+0

Was erste Erkenntnis tr, Eltern ist es dann und dann .tomatch? – mm759

Antwort

3

.closest und .parents sind zum Suchen von Elementen, die Vorfahren des angegebenen Elements sind, aber das Element, das Sie möchten, ist ein Geschwister eines Vorfahren. Sie müssen es also in zwei Schritten tun - gehen Sie zuerst zum Vorfahren und dann von dort zum vorherigen Element.

$(".matching").click(function() { 
 
    console.log($(this).closest("tr").prev().attr('id')); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<table> 
 
    <tr class="tomatch" id="123"></tr> 
 
    <tr> 
 
    <td> 
 
     <div> 
 
     <span class="matching">Click here</span> 
 
     </div> 
 
    </td> 
 
    </tr> 
 
</table>

Verwandte Themen