J’ai 3 divs et je veux remplacer le premier div avec une balise d’ouverture d’un autre div et le troisième avec la balise de fermeture. C’est ce que je voulais dire:
1 2 3
Quand j’ai essayé de remplacer (en utilisant replaceWith ()) le premier div avec
, jQuery l’a mal interprété comme:
2
Alors que ce que je veux réellement, c’est:
2
Merci d’avance,
Vous devriez travailler avec des éléments entiers plutôt que des morceaux de code HTML. Une autre façon de penser est:
// Get the div you want var good = $('div:eq(1)'); // Remove the others $('div').not(good).remove(); // Wrap the div you want good.wrap('');
S’il y a plusieurs divs entre le premier et le dernier, vous pouvez faire ceci:
$('div:first').replaceWith(''); $('div.foo').nextAll('div').appendTo('div.foo'); $('div.foo :last').remove();
Voir la démo: http://jsfiddle.net/TBMHt/