2010-01-15 3358 views
2

我有一个触发的javascript函数来隐藏具有相同类名的“dd”。但问题是,有时候,只有dt是孤立的。例如,第一个dt dd块,当我隐藏所有3个dd的时候。 dt(今天)仍然存在。当没有dd关联时,我想隐藏dt。我怎样才能做到这一点?如何在隐藏“dd”后隐藏“dd”

<dl> 
    <dt>Today</dt> 
    <dd class="Admissions3">14:59 > Admission: Transfer, B3FOL, Metroplex Hospital</dd> 
    <dd class="Admissions3">12:00 > IM: Review by Me, Wound healing well. Could need further follow-up...</dd> 
    <dd class="Admissions3" style="color: Black">09:42 > LAB: WOUND CULTURE, Staph aureus (Pending)</dd> <dt>Yesterday</dt> 

    <dd class="Laboratory3">16:40 > LAB: UMCS, Blood, Enterococcus sp. Light growth of (Pending)</dd> 
    <dd class="Surgery3">10:35 > SUR: Right Total Hip Replacement</dd> <dt>Two days ago</dt> 

    <dd class="Admissions3">16:25 > ADT: Transfer, ICU, Metroplex Hospital</dd> 
    <dd class="Laboratory3">13:15 > LAB: UMCS, Swab, No growth</dd> 
    <dd class="Admissions3">13:10 > ADT: Admit EXC HUTCHINSONS MELANOTIC FRECKLE</dd> <dt>Four days ago</dt> 

    <dd class="CentralLine3">14:24 > RM: Parking Incident</dd> 
    <dd class="CentralLine3">14:05 > RX: Doxycycline 4g Daily</dd> 
    <dd class="Admissions3">13:20 > ADT: Podiatry</dd> <dt>9/7/09</dt> 

    <dd class="Laboratory3">15:32 > LAB: UMCS, Blood, No growth</dd> 
    <dd class="Pharmacy3">10:18 > IM: Isolation Precautions - High</dd> <dt>3/5/09</dt> 

    <dd class="Surgery3">11:45 > SUR: Left Total Hip Replacement</dd> 
    <dd class="Admissions3">09:20 > ADM: Transfer, B3ROD, Real World Hospital</dd> 
    <dd class="Admissions3">09:17 > ADM: Total Hip Replacement, Real World Hospital</dd> 
</dl> 
+0

如何在你已有的代码加入。 – 2010-01-15 06:32:59

+0

以前的问题,是否有帮助?http://stackoverflow.com/questions/1957675/delete-dt-without-dd-with-jquery,有帮助吗? [1]:http://stackoverflow.com/questions/1957675/delete-dt-without-dd-with-jquery – Ajw 2010-01-15 07:07:08

+0

欢迎来到StackOverflow! – gnarf 2010-01-19 06:39:53

回答

0

这段小小的代码可能会有帮助。

var $dl = $('dl'); // hook this up to your DL 

$dl.find('dt').each(function() { 
    var $dt = $(this), $next = $dt.nextAll(':visible').slice(0,1); 

    // if the next visible item is also a dt, or there isn't a next visible item 
    if ($next.is('dt') || $next.length == 0) 
    { 
    $dt.hide(); 
    } else { 
    $dt.show(); 
    } 
});  
2

我觉得应该有更好的方法,但这又如何?

$('.Admissions3').hide(); 

$('dt').each(function() { 
    var $dt = $(this); 

    if (!$dt.next(':visible').is('dd')) 
    $dt.hide(); 
}); 

你可以看到它在这里的行动:http://jsbin.com/orolo3/edit

+0

不会隐藏最后的'

' – gnarf 2010-01-15 06:56:42

+0

良好的通话。为此编辑修复。 – 2010-01-15 07:05:17