jQuery在1个元素中打开元素

jQuery open element in 1 element

本文关键字:元素 jQuery 1个      更新时间:2023-09-26

这是一个非常简单的事情,但我不能得到它的工作。我正在做一个领导管理仪表板,用户可以看到他的领导。他首先只看到编号、名称和日期,当他单击名称时,需要显示另一个div来查看其他信息。

通常我可以使用.closest(),但我认为,因为他们是在同一水平,不工作。所以我尝试了.siblings(),但这甚至不起作用。

有人能帮我一下吗?

我做了一个jsfiddle: http://jsfiddle.net/zeSj3/

// Open en close leads
$("#dash_action #lead_list .lead_line a").click(function () {
    event.preventDefault();
    $(this).parent().find('.lead_info').fadeToggle();
});

使用.parents()找到最近的共同父(.parents(".lead_line")),然后从那里找到find()

$(this).parents(".lead_line").find('.lead_info').fadeToggle();

避免多次调用.parent()。要理解它引用的是哪个元素并不容易,而且DOM结构的任何微小变化都会破坏您的脚本。

http://jsfiddle.net/zeSj3/1/

你应该使用。

 $("#dash_action #lead_list .lead_line a").click(function () {
   event.preventDefault();
   $(this).parent().parent().find('.lead_info').fadeToggle();
 });

它在上面两层,所以你应该调用parent()两次。

// Open en close leads
$("#dash_action #lead_list .lead_line a").click(function () {
    event.preventDefault();
    $(this).parent().parent().find('.lead_info').fadeToggle();
});

链接到JSFiddle.

你可以这样做:

// Open en close leads
$(".lead_line a").click(function (event) {
    event.preventDefault();
    $(this).parent().closest('.lead_line').find('.lead_info').fadeToggle();
});

但正如其中一个答案所提到的,.parents()可能是一个更好的解决方案。