2 votes

comment styliser l'élément parent supérieur à l'aide de jquery

Je veux un style de parent supérieur et il doit être dynamique. je veux juste un style de parent supérieur. nous pouvons ajouter plus de div parent mais le style doit se refléter sur la div. est-ce possible avec jquery.

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript" src="jquery-1.7.2.js"></script>
<script type="text/javascript">

$(function(){
    $('.text').parent().css('background-color','red')
})

</script>
</head>
<body>

<div>
    <div>
        <div class="menu">
            <div class="text">hiiii</div>
        </div>
    </div>
</div>

</body>

5voto

T.J. Crowder Points 285826

En fonction de ce que vous entendez par "parent supérieur", vous voudrez peut-être que l'option parents avec le sélecteur "div" :

$(function(){
    $('.text').parents("div").last().css('background-color','red');
});

Notez que cela ne fonctionnera comme prévu que si $('.text') ne correspond qu'à un seul élément. Si elle correspond à plus d'un élément, vous aurez besoin d'une boucle, par exemple :

$(function(){
    $('.text').each(function() {
        $(this).parents("div").last().css('background-color','red');
    });
});

...qui définit le "parent supérieur" de chaque correspondance .text au rouge.

0voto

xdazz Points 85907

Vous pouvez le faire comme ci-dessous :

$('.text').parents('div:last').css('background-color','red')​;

.parents() renvoie les ancêtres dans l'ordre de l'intérieur vers l'extérieur, donc vous pourriez plus :last pour obtenir le parent le plus à l'extérieur.

0voto

sachleen Points 17288

Je pense que vous voulez l'élément de plus haut niveau à partir de celui qui est actuellement sélectionné. Vous pouvez utiliser .parents() pour obtenir tous les parents de la division jusqu'à ce que body y html .

$(".text").parents()
[
<div class=​"menu" style=​"background-color:​ red;​ ">​…​</div>​, 
<div>​…​</div>​, 
<div>​…​</div>​, 
<body>​…​</body>​,
<html>​…​</html>​
]

parents = $(".text").parents();
var rootElement = $(parents[parents.length-3])

Je le fais. -3 parce que je n'inclus pas body y html (c'est -2 et le tableau est basé sur 0 alors soustrayez-en un autre). Vous ne pourriez pas effectuer cette soustraction et spécifier un sélecteur tel que .parents("div") et prendre le dernier, aussi. Vous devrez cependant savoir quel type d'élément est l'élément Root.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X