2010-09-07 142 views
0

我想我可以使用.next這個,不知道,如果有更好的方法,請讓我知道。我有一個帶有UL標籤的選項卡,UL中的每個LI除了「活動」li外,底部都有1px的虛線邊框。 「活動」標籤有一個背景圖片。如果任何LI之後的LI具有活動類,我需要刪除邊框。幫助jQuery .next

<ul id="flowtabs"> 
    <li><a href="t1">Analysis</a></li> 
    <li><a href="t2">Manual Trading</a></li> 
    <li><a href="t3" class="active">Automatic Trading</a></li> 
    <li><a href="t4">Simulate</a></li> 
    <li><a href="t5">Connect</a></li> 
    <li><a href="t6">Extend</a></li> 
</ul> 

$(document).ready(function() { 
    if($('#flowtabs li a').hasClass('active').next('css','border','none') 
} 

我想<a href="t2"><a href="t4">有自己的邊界去除,並且有這樣的應用任何時候李娜類活躍。

我不認爲建築是正確的,有沒有更好的辦法之前,並具有一流的「主動」

這裏是一個圖像,以幫助一前一後,除去從李邊界:http://img693.imageshack.us/img693/5384/screenshot20100907at147.png

謝謝!

+0

根據您提供的示例圖片,我認爲您實際需要的是將邊界從「活動」和緊接之前的那個邊界刪除,因爲邊界位於每個li的底部,這個兩個邊框圍繞着活動節點 – Ender 2010-09-07 20:02:36

回答

1

這做什麼你特別要求,在活動<li>兩側去除的<li> S中的邊界:

$(function() { 
    $('#flowtabs li a.active').parent('li').next().add($('#flowtabs li a.active').parent('li').prev()).css('border','none'); 
}); 

這裏的工作演示:http://jsfiddle.net/WUu2F/

這做什麼,我想你其實我想在我的評論中提到你的問題:

$(function() { 
    $('#flowtabs li a.active').parent('li').prev().andSelf().children('a').css('border','none'); 
}); 

並且演示了這個:http://jsfiddle.net/k5sur/

+0

下面是工作代碼:http://www.kinetick.com/V3/tour 我想在手動交易中刪除邊框,上面是一個。我將目標定位在李的錨點,因爲.active比正常的要寬一個 – 2010-09-07 20:05:09

+0

是的,你需要我的第二條建議 – Ender 2010-09-07 20:06:09

+0

@骯髒的鳥 - 我已經更新了我的答案,以定位錨點。 – Ender 2010-09-07 20:08:09

0

爲什麼不以相反的方式進行操作,並將下劃線加上liactive類。

$(document).ready(function() { 
    $('#flowtabs li a').hasClass('active').parent('li').css('border','none'); 
} 

但是,如果你想這樣做。然後有一些問題。 li之前activeli?無論哪種方式next將針對a元素而不是li。這將刪除所有li的邊界,除了activea

$(document).ready(function() { 
    if($('#flowtabs li a').hasClass('active').parent('li').siblings().css('border','none') 
} 
+0

不太好,上面加了個例子thx – 2010-09-07 19:46:38

+0

看到我的更新,要麼應該工作,不能使用基於文檔的'next'「獲取匹配集合中每個元素的緊隨其後的兄弟元素「。 – 2010-09-07 19:48:19

0

可能是你可以像thisL

$(document).ready(function(){ 
    $('#flowtabs li a').not('.active').css('border','none'); 
}); 

東西這意味着任何「一」,除了一個帶班標籤「主動」 - >刪除邊框。

1
$(document).ready(
    function() 
    { 
     $('#flowtabs li a.active').filter(function(i) { return i > 0; }).parent('li').css('border', 'none'); 
    } 
); 

http://jsfiddle.net/PxmqG/

這將刪除周圍出現的第一li a.active後的li a.active S中的邊界。


你的問題有點令人困惑,所以我覺得在第二次讀後,我更好地理解你想要什麼。

$(document).ready(
    function() 
    { 
     $('#flowtabs li a.active').parent('li').prev('li').css('border-bottom','none').end().next('li').css('border-top', 'none'); 
    } 
); 

這將消除對li S上的邊框和前後每li a.active。我加了這個是因爲你的解釋和形象。


修訂3

$(document).ready(
    function() 
    { 
     $('#flowtabs li a.active').css('border-bottom', 'none').parent('li').prev('li').children('a').css('border-bottom','none'); 
    } 
); 

這將刪除您currentpreviousli標籤border。似乎是你從一開始就想要的,是的?