我创建了一个包含ul
元素的li
。我想在点击同一个div
中的链接时向下滑动li
。
问题是当我点击链接时会显示所有div
。
我使用PHP在每个链接上设置id。
html代码在这里:
<li class='post'>
<div class='link'>
<a href='#'id=". * Here is Post ID * ."></a>
</div>
<div class='slidedown'>//here is what I want to sliding</div>
</li>
jQuery代码在这里:
$(".link a").click(function(){
var id_post = $(this).attr("id");
$(".slidedown").slideDown("slow");
return false;
});
答案 0 :(得分:0)
使用.parent()
向上移动一个父级。由于容器正在寻找.post
,我们必须向上移动2个父母。然后,我们可以找到.slidedown
的孩子并将其与.slideDown()
$(".link a").click(function(){
$(this).parent().parent().children('.slidedown').slideDown("slow");
});
答案 1 :(得分:0)
你可以更轻松地做到这一点:
<强>的jQuery 强>
$('.link').on('click', function() {
$(this).parent().find('.slidedown').slideDown('slow');
});
或者您使用:
$('.link a').on('click', function() {
$(this).closest('.slidedown').slideDown('slow');
});
转到jQuery文档的.closest()或.parent()了解详情。
答案 2 :(得分:0)
这里的代码效果很好:
$(".link").click(function(){
$(this).siblings('.slidedown').slideDown('slow');
});
答案 3 :(得分:0)
您可以使用parent()
向上移动一级,next()
以定位下一个兄弟:
$(".link a").click(function(){
$(this).parent(".link").next(".slidedown").slideDown("slow");
return false;
});
或者您可以使用closest()
访问.post
并使用find()
或children()
定位.slidedown
:
$(".link a").click(function(){
$(this).closest(".post").find(".slidedown").slideDown("slow");
return false;
});