Идентификаторы должны быть уникальными в HTML-документе. Если у вас есть несколько элементов с id="show_comments"
, вы делаете это неправильно и не сможете получить доступ к более чем одному из них через Javascript. Правильный способ группировки элементов - по классам.
Правильный способ сделать это будет выглядеть примерно так, при условии, что HTML выглядит следующим образом:
<div id="item-1">
....text of whatever people are commenting on....
<a href='#' class='toggle_comments'>show comments</a>
<div class='comments' style='display: none;'>
... comments ...
</div>
</div>
<div id="item-2">
....text of whatever people are commenting on....
<a href='#' class='toggle_comments'>show comments</a>
<div class='comments' style='display: none;'>
... comments ...
</div>
</div>
И тогда Javascript / jQuery будет:
$('a.toggle_comments').toggle(function() {
$(this).next('div.comments').slideDown('fast');
$(this).text('hide comments');
}, function() {
$(this).next('div.comments').slideUp('fast');
$(this).text('show comments');
});
И вот демонстрация этого в действии .