2014-01-15 52 views
0

好的元素的位置,所以我需要能夠得到第n基礎上,&頁面元素ID之間的相互匹配的元素(從零開始)位置..jQuery的,計數N基於匹配頁/元素ID

如果我舉一個例子(假設當前頁面ID是488);

<ul id="work-grid"> 
    <li id="item-486" class="work-item"><!--/content--></li> 
    <li id="item-487" class="work-item"><!--/content--></li> 
    <li id="item-488" class="work-item"><!--/content--></li> 
    <li id="item-489" class="work-item"><!--/content--></li> 
    <li id="item-490" class="work-item"><!--/content--></li> 
</ul> 

正如你可以看到匹配的數字ID 488列表項是在列表中的第三個(因此將有2的n值)。

的問題是,該網格將出現在多個頁面上(用不同的ID),並將列表動態填充,所以我從來不知道的匹配元件的位置。有沒有一種方法,我可以使用jQuery得到它,並把它添加到下面的代碼片段(正確的N檔位更換2

$('#work-grid').trigger("colio", ["expand", 2]); 

這可能做幾乎沒有任何意義,所以如果有什麼需要澄清,請讓我知道。

回答

1

我覺得index()是你想要什麼:

var index = $('#item-488').index(); 

$('#work-grid').trigger("colio", ["expand", index]); 
+0

這個工作按預期。謝謝 –

0

你的意思是jQuery的指數()方法? http://api.jquery.com/index/

If no argument is passed to the .index() method, the return value is an integer indicating the position of the first element within the jQuery object relative to its sibling elements. 
1

假設你的元素在頁面上出現一次,你可以這樣做:

$('#item-488').index(); 

找出元素的索引。閱讀上指數()的位置:http://api.jquery.com/index/適用於這種情況下的位是:

如果沒有參數傳遞給的.index()方法的返回值是表示第一個元素的位置的整數在相對於其兄弟元素的jQuery對象中。

下面是一個例子:http://jsfiddle.net/bnF6h/

1
var page = 488; 
var a = $("li[id$='"+ page +"']"); 

你可以使用這個動態選擇基於網頁標識的項ID。

應用它:

var page = 488; 
    var a = $("li[id$='"+ page +"']").index(); 
    $('#work-grid').trigger("colio", ["expand", a]);