我有多个div设置,包含标题和内容。 单击标题时,它会展开选定div上的内容,并隐藏所有其他内容。 这工作正常,但我需要获取已隐藏或显示的所有内容div的ID。
这是我对hide / show的jquery:
$(".CollapsableHeader").next(".CollapsableDiv").hide();
$(".CollapsableHeader").click(function () {
$('.active').not(this).toggleClass('active').next('.CollapsableDiv').slideToggle(300, function () {
alert($(this).next('.CollapsableDiv').attr('id'));
});
$(this).toggleClass('active').next().slideToggle("fast");
});
因此,在此示例中,我的警报始终显示为undefined
。
我尝试的所有内容都以undefined
的形式出现。
知道如何获得.CollapsableDiv
的ID吗?
答案 0 :(得分:0)
如果您在点击id
后查找“下一个”.CollapsableDiv
的{{1}},请在点击处理程序而不是.CollapsableHeader
中抓取它回调:
slideToggle
原因是$(".CollapsableHeader").next(".CollapsableDiv").hide();
$(".CollapsableHeader").click(function () {
// Grab it here
var id = $(this).next('.CollapsableDiv').attr('id');
$('.active').not(this).toggleClass('active').next('.CollapsableDiv').slideToggle(300, function () {
// Then use it here
alert(id);
});
$(this).toggleClass('active').next().slideToggle("fast");
});
回调中的this
是一个不同的元素(具体而言,它是slideToggle
最终的结果。)