我有一个评论系统,它目前折叠所有回复。我想显示两个回复然后折叠所有回复。现在我调查了这个http://jsfiddle.net/isherwood/Frpmj/3/,但我并没有得到它,因为我使用for循环来回复。这是我的代码。
<div class="replyInfo">
{% if not comment.is_child %}
<div class="wholeReply">
{% if comment.comment_count %}
<a href='#' class='replies'>
{{comment.comment_count}}</a>
{% endif %}
<div class="got_replies">
<ul style="list-style-type: none;">
{% for child in comment.get_children %}
<li>
{{ child.get_comment }}
</li><hr>
{% endfor %}
</ul>
</div>
</div>
</div>
<script>
$('.replies').click(function(e){
e.preventDefault();
$(this).next(".got_replies").fadeToggle();
})
$(".got_replies").fadeToggle();
</script>
有人可以帮帮我吗?
答案 0 :(得分:1)
您可以使用slice()
函数选择类名为reply
的前两个元素。您必须将类名reply
添加到您的html中。 Live Preview
添加了班级名称的HTML:
<div class="replyInfo">
{% if not comment.is_child %}
<div class="wholeReply">
{% if comment.comment_count %}
<a href='#' class='replies'>
{{comment.comment_count}}</a>
{% endif %}
<div class="got_replies">
<ul style="list-style-type: none;">
{% for child in comment.get_children %}
<li class="reply"><!--added class to your li element-->
{{ child.get_comment }}
</li><hr>
{% endfor %}
</ul>
</div>
</div>
</div>
<强> JavaScript的:强>
$('.replies').click(function(e){
e.preventDefault();
$(this).next(".got_replies").find(".reply").slice(0,2).fadeToggle();
});
$(".reply").fadeToggle();
答案 1 :(得分:0)
目前,您正在隐藏整个div。 我没有测试过,但试试这个:
<script>
$('.replies').click(function(e){
e.preventDefault();
$(this).next(".got_replies").children("ul").children("li:nth-child(n+2)").fadeToggle();
})
</script>