On Wed, Jan 13, 2010 at 10:54 AM, happysmile <francesca.manc...@gmail.com>
wrote:
> It works only the first time you click on the button (changes from
> 'show' to 'hide'), while it remains almost always 'Hide' in all the
> following clicks.

This won't help you understand :contains but I think it does what you want:

http://jsbin.com/udesu/edit

Assuming this markup:
<p>
  <button class="show_profile">Show details</button>
  <span class="directors_details" style="display:none">
    <br />details details details</span></p>

The code:
$('.show_profile').click(function() {

  // toggle link class to change the arrow background image
  var jThis = $(this)
    .toggleClass("hide_profile");

  // toggle visibility profile
  var jDetails = jThis.next('.directors_details')
    .toggle();

  // change show/hide text in the link
  if (jDetails.is(":visible")) {
    jThis.text(jThis.text().replace('Show','Hide'));
  } else {
    jThis.text(jThis.text().replace('Hide','Show'));
  }

  return false;
});

Nathan

Reply via email to