2010-08-18 58 views
4

我想淡化所有具有數字屬性大於或小於給定數字的div。jQuery的選擇器ID,類,相對等,其中值大於給定的數字

喜歡的東西$("div[id$=2]").fadeTo("slow", 0.6);

,但我想用「>」或「<」操盤手「=」

基本上我會說出我的所有div像

<div id="22">text</div> 
<div id="35">text</div> 
<div id="40">text</div> 

然後使用

$("div[id$>35]").fadeTo("slow", 0.6); 

to淡出最後一個單元格

回答

2

這不是有效的HTML。 id可能不以數字開頭。相反,您可能會發現:gt選擇器很有幫助。您可以使用,例如td:gt(4)查找0-index> 4的那些tds,或#container div:gt(1)在索引> 1的容器中查找d​​iv。

+0

使用的唯一問題:gt是它假定編號的div以頁面上的數字順序出現,可能/可能不是這種情況。 – 2010-08-18 05:58:24

3

首先,您的HTML無效。 ID屬性不應以數字開頭。

像這樣做,

<div id="div22" class="fade">text</div> 
<div id="div35" class="fade">text</div> 
<div id="div40" class="fade">text</div> 

然後jQuery的

var divs = $('.fade').map(function(){ 
       if (this.id.replace('div','') > 35) return '#'+this.id; 
      }).get().join(','); 

$(divs).fadeTo("slow", 0.6); 

You may play it here.

這個工程太,

var divs = $('.fade').map(function(){ 
      if (this.id.replace('div','') > 22) return this; 
     }).get(); 
$(divs).fadeOut("slow"); 

Russ Cam建議使用過濾器,

var divs = $('.fade').filter(function(){ 
      return (this.id.replace('div','') > 22); 
     }); 
$(divs).fadeOut("slow"); 
+0

使用過濾器可能會更容易 – 2010-08-18 05:55:05

相關問題