As Dimitre mentioned, I'm not sure what xslt has to do with this, but here's the jquery:
<style type="text/css">
.description { display: none; }
</style>
<div class="title" id="fruits">Fruits <span class="expand">+</span></div>
<div class="description" id="fruits_desc">
Fruits are nutritious.
</div>
<script type="text/javascript">
$('.title .expand').click(function() {
var expander = $(this);
var selectedID = $(this).parent().attr('id');
var desc_id = '#'+selectedID+'_desc';
$(desc_id).toggle(function() {
$(desc_id).show();
$(expander).html('-');
}, function() {
$(desc_id).hide();
$(expander).html('+');
}); // toggle
}); // click
</script>
xslt just transforms xml files I think? There's a jquery library for that (google 'jquery xslt') and you might replace the hide() and show() functionality here with .html('') and .html([ajax place to load data from which pulls from an xml file transformed by xslt])