jQuery: Comment obtenir l'élément wrapper créé avec"wrapAll ()"?
Considérons le code suivant: (exemple en direct ici )
HTML:
<div class="a">Hello</div>
<div class="a">Stack</div>
<div class="a">Overflow</div>
CSS:
.wrapper {
background-color: #777;
}
JS:
$(function() {
var wrapper = $("<div class='wrapper'></div>");
$(".a").wrapAll(wrapper);
wrapper.css("border", "5px solid black"); // Doesn't work
});
Quelle serait la bonne façon d'obtenir le wrapper créé et de changer ses attributs ?
Note: Il y a d'autres éléments .wrapper
dans le DOM, donc cela ne fonctionnera pas:
$(".wrapper").css("border", "5px solid black");
Je ne veux pas non plus donner un id
unique au wrapper créé.
23
demandé sur
Misha Moroshko
2011-08-07 16:32:30
3 réponses
Puisque vous venez d'envelopper les éléments, vous pouvez utiliser parent () pour obtenir les wrappers nouvellement insérés:
$(".a").wrapAll("<div class='wrapper'></div>")
.parent().css("border", "5px solid black");
31
répondu
Frédéric Hamidi
2011-08-07 12:47:25
L'objet jQuery stocké dans wrapper
est cloné lorsque wrapAll
est appelé, vous ne pouvez donc pas affecter les .wrappers
qui ont été insérés dans le DOM en manipulant wrapper
, Vous devez les sélectionner dans le document.
6
répondu
karim79
2011-08-07 12:44:43
$(function() {
var wrapper = $("<div class='wrapper'></div>");
var wrapped = $(".a").wrapAll(wrapper);
wrapped.css("border", "5px solid black");
});
-2
répondu
Billy Moon
2011-08-07 12:38:21