9
votes

Échanger le contenu de div avec jQuery

Voici mon HTML:

<div class="large">
    <img src="/images/photos/Interior.jpg" alt="The interior" style="[...]" />
    <div class="caption">The interior</div>
</div>
<div class="small">
    <img src="/images/photos/Bedroom.jpg" alt="Bedroom" style="[A different ...]" />
    <div class="caption">A bedroom</div>
</div>


1 commentaires

Lol rofl, etc. !! Je viens de me trouver à la recherche d'un bon moyen d'échanger les contenus de div en utilisant jQuery. Et regarder qui a répondu à cette question .....


3 Réponses :


16
votes
$(document).ready(function() {
    $('div.small').click(function() {
        var bigHtml = $('div.large').html();
        var smallHtml = $(this).html();

        $('div.large').html(smallHtml);
        $('div.small').html(bigHtml);

        //custom functions?
    });
});

2 commentaires

Merci pour l'aide. Quelqu'un sache pourquoi je perds vos lampes en collant cela dans Visual Studio?


Cela fonctionne bien, mais vous perdez des événements liés à la DIV (comme "ControlName.Changer ()". L'utilisation de détachis et d'appends conserve les événements. Voir Stackoverflow.com/a/9719297/1359088



0
votes

Changez votre balisage un peu: xxx

puis dans le JavaScript, vous pouvez faire: xxx

évidemment, il peut être nettoyé , mais vous avez l'idée.


1 commentaires

Changer à ID n'est pas une option, car il y a plus d'un div.small



1
votes
function swapContent(){
   var tempContent = $("div.large").html();
   $("div.large").empty().html($("div.small").html());
   $("div.small").empty().html(tempContent);   
}

<div class="large">
    <img src="/images/photos/Interior.jpg" alt="The interior" style="[...]" />
    <div class="caption">The interior</div>
</div>
<div class="small" onclick="swapContent()">
    <img src="/images/photos/Bedroom.jpg" alt="Bedroom" style="[A different ...]" />
    <div class="caption">A bedroom</div>
</div>
Hope it helps.

0 commentaires