Другие респонденты правы, что ваш селектор dd
не прав. e.target
- это a
, который имеет только текст в качестве дочернего элемента, а не dd
, который вы ищете. И как Марк указал (редактировать: прежде чем он удалил свой ответ) , вы хотите return false
из обработчика нажатия.
Мне нравится работать с классами, когда делаю подобные вещи, поскольку это делает код явным и не зависит от структуры DOM.
Примерно так:
<script>
$(document).ready(function(){
$("dt a").click(function(e){
// Toggle elements whose class is named by the anchor class
$('dd.'+this.className).toggle();
return false;
});
});
</script>
<style>
dd{display:none;}
</style>
<pre>
<dl>
<dt><a class='jQuery' href="/">jQuery</a></dt>
<dd class='jQuery'> <!-- Set the class name to the anchor class -->
<ul>
<li><a href="/src/">Download</a></li>
<li><a href="/docs/">Documentation</a></li>
<li><a href="/blog/">Blog</a></li>
</ul>
...
Если вас не волнует изменение вашей структуры, решение tanathos будет работать просто отлично.