2017-02-03 15 views
0

Ich möchte die Schriftgröße des Elternelements erhöhen. Wenn ich meinen Code verwende, wird die Schriftgröße des ganzen Körpers erhöht. Wie kann ich dieses Problem vermeiden? Beispiel basierend auf der id="vs-1" Ich möchte hier 1940 die Schriftgröße des Grant Parent li Text erhöhen.Wie bekomme ich Elternelement mit jquery

$("li #vs-1").parents().css({ 
 
    'color': '#ff3600', 
 
    'font-size': '35px' 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<ul> 
 
    <li>1940 
 
    <ul> 
 
     <li style="background-color: rgb(255, 54, 0);" id="vs-1"></li> 
 
    </ul> 
 
    </li> 
 
    <li>1970 
 
    <ul> 
 
     <li id="vs-2"></li> 
 
    </ul> 
 
    </li> 
 
</ul>

Wenn ich diesen Code verwenden sie den ganzen Körper ul li-Tag beeinflussen. Bitte gib mir die Lösung. Danke

+1

'.parent()' ist das, was Sie nach. Außerdem haben Sie eine ID (die im DOM btw eindeutig sein sollte), also brauchen Sie 'li # vs-1' nicht einfach' $ ('# vs-1'). Parent() ' –

+5

Haben Sie versucht zu tippen? Ihr genauer Titel in Google? - Ihre Antwort ist buchstäblich das erste und zweite Ergebnis :) – Darren

+0

funktioniert nicht – Rijo

Antwort

2

Sie auf dem richtigen Weg waren, sollten Sie nur die Eltern in .parents() Anruf angeben:

$('li #vs-1').parents("li").css({'color':'#ff3600','font-size':'35px'}); 
______________________^^^^ 

Hoffnung, das hilft.

$("li #vs-1").parents('li').css({ 
 
    'color': '#ff3600', 
 
    'font-size': '35px' 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<ul> 
 
    <li>1940 
 
    <ul> 
 
     <li style="background-color: rgb(255, 54, 0);" id="vs-1"></li> 
 
    </ul> 
 
    </li> 
 
    <li>1970 
 
    <ul> 
 
     <li id="vs-2"></li> 
 
    </ul> 
 
    </li> 
 
</ul>

+0

@Rijo haben Sie diese Lösung versucht? –

+0

Ich habe versucht, diesen Code seine Arbeit – Rijo

+0

Wenn meine Frage richtig ist, können Sie bitte geben Sie mir – Rijo

2

Aktualisiert: müssen Eltern erreichen und dann closest() verwenden. Bitte überprüfen Sie unter snnippet

$(function(){ 
 
    $("li #vs-1").parent().closest("li").css({'color':'#ff3600','font-size':'35px'}); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<ul> 
 
    <li>1940 
 
    <ul> 
 
     <li style="background-color: rgb(255, 54, 0);" id="vs-1"></li> 
 
    </ul> 
 
    </li> 
 
    <li>1970 
 
    <ul> 
 
     <li id="vs-2"></li> 
 
    </ul> 
 
    </li> 
 
</ul>

+0

Ich habe diesen Code auch versucht, aber nicht funktioniert – Rijo

+0

erhalten Sie eine Fehlermeldung in Ihrer Konsole beim Versuch diese Antwort – Yannjoel

+0

** 4 upvotes fot a non funktionierende Antwort !! ** Tut mir leid, aber '' nearest() 'wird in dieser Situation nicht funktionieren. Sehen Sie sich ** an [[engest() Methode funktioniert nicht wie erwartet] (http://stackoverflow.com/questions/41508008/engste Methode funktioniert nicht wie erwartet **. –

1

ein paar Dinge:
Um achive, was Sie wollen, Sie $('...').parents()[1].css({'...'});
die .parents() Methode gibt ein Array aller Eltern, und das erste Element des Arrays verwenden können, ist die unmittelbarer Elternteil.
Da Sie eine ID des Elements haben, das Sie auswählen möchten, müssen Sie nicht li davor haben.
Siehe docs

+0

ya bro Ihre Antwort nur richtig. Kannst du mir meine Frage geben – Rijo

1

Sie wollen nur Stil Mutter li, nicht, dass li selbst. Versuchen Sie folgendes:

$("li #vs-1").parent('li').css({ 
    'color': '#ff3600', 
    'font-size': '35px' 
}); 

$("li #vs-1").closest('li').css({ 
    'color': '#000', 
    'font-size': '16px' 
}); 

https://jsfiddle.net/9u9hb839/2/

+0

es funktioniert hier – imudin07

+0

ya es arbeitet Dank für Ihre Arbeit. Also meine Frage ist gültig, können Sie mir für meine Frage stimmen lassen – Rijo

Verwandte Themen