我需要根據使用:eq()
(或別的東西,如果你有一個更好的解決方案)有指數選擇的jQuery元素的特定農莊選擇一定範圍的DOM元素的基於指數
我的HTML結構如下:
<ul>
<li>slide0</li>
<li>slide1</li>
<li>slide2</li>
<li>slide3</li>
<li>slide4</li>
</ul>
當用戶將鼠標懸停在滑件,我需要選擇li:eq(0), li:eq(1)
和li:eq(3), li:eq(4)
separatly,因爲他們有不同的動畫幻燈片。
這是我的解決方案,但這種感覺有點凌亂...
var $slides, theOthers, slidesTotal;
$slides = $('ul > li');
slidesTotal = $slides.length;
theOthers = function(slideIndex ,slidesTotal){
var before = [], after = [], i=0;
while (i<=slideIndex - 1){
before[i] = ":eq(" + i + ")"
i++
};
while (i <= slidesTotal) {
after[i] = ":eq(" + i + ")"
i++
};
return [ before.join(",") , after.join(",") ]
}
$slides.mouseenter(function(){
var groups, slideIndex, $that = $(this);
slideIndex = $that.index();
groups = theOthers(slideIndex, slidesTotal);
$slides.filter(groups[0]).dosomething();
$slides.filter(groups[1]).dosomethingelse()
})
有沒有更簡單的方法使用jQuery做到這一點?
對不起之前,我誤解你的問題。刪除我的答案:-) – 2010-09-17 09:47:46
沒問題,這是一個有趣的選擇組合:P,但我已經使用了'$ slides.not($(this))'等等......然後發現我需要動畫元素 – meo 2010-09-17 09:52:17