112 votes

Modifier le contenu de la div - jQuery

Comment est-il possible de modifier le contenu de cette div, lorsque l'un des LIENS est cliqué?

<div align="center" id="content-container">
    <a href="#" class="click cgreen">Main Balance</a>
    <a href="#" class="click cgreen">PayPal</a>
    <a href="#" class="click cgreen">AlertPay</a>
</div>

178voto

Darin Dimitrov Points 528142

Vous pourriez vous inscrire pour les .cliquez sur l'événement pour les liens et modifier le contenu de la div à l'aide de l' .html méthode:

$('.click').click(function() {
    // get the contents of the link that was clicked
    var linkText = $(this).text();

    // replace the contents of the div with the link text
    $('#content-container').html(linkText);

    // cancel the default action of the link by returning false
    return false;
});

Notez cependant que si vous remplacez le contenu de cette div le gestionnaire de clic que vous avez attribué sera détruit. Si vous avez l'intention d'injecter de nouveaux éléments du DOM à l'intérieur de la div pour laquelle vous avez besoin de fixer des gestionnaires d'événement de cette les pièces jointes doivent être effectuées à l'intérieur de l' .cliquez sur gestionnaire après l'insertion du nouveau contenu. Si le sélecteur d'origine de l'événement est préservé, vous pouvez également prendre un coup d'oeil à l' .delegate méthode pour joindre le gestionnaire.

18voto

Joseph Silber Points 69582

Il y a 2 fonctions jQuery que vous aurez envie de l'utiliser ici.

1) click. Cela va prendre une fonction anonyme comme il est seul paramètre, et va l'exécuter lorsque l'élément est cliqué.

2) html. Cela va prendre une chaîne html comme il est seul paramètre, et à remplacer le contenu de votre élément, avec le code html fourni.

Donc, dans votre cas, vous aurez envie de faire ce qui suit:

$('#content-container a').click(function(){
    $(this).parent().html('<a href="#">I\'m a new link</a>');
    return false;
});

Si vous souhaitez ajouter du contenu à votre div, plutôt que de remplacer tout cela, vous devez utiliser append:

$('#content-container a').click(function(){
    $(this).parent().append('<a href="#">I\'m a new link</a>');
    return false;
});

Si vous voulez que l'ajout de liens vers aussi ajouter du nouveau contenu lorsque vous cliquez dessus, vous devez utiliser live:

$('#content-container a').live('click', function(){
    $(this).parent().append('<a href="#">I\'m a new link</a>');
    return false;
});

ou delegate:

$('#content-container').delegate('a', 'click', function(){
    $(this).parent().append('<a href="#">I\'m a new link</a>');
    return false;
});

7voto

Jørgen Points 3422
$('a').click(function(){
 $('#content-container').html('My content here :-)');
});

-2voto

Essayez $('#score_here').html=total;

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