2013-09-27 38 views
0

我開始編寫自定義選擇(這什麼都不做):jQuery自定義選擇器索引不工作?

$.expr[':'].blabla = function (elem,idx,meta,items) 
{ 
    console.log(idx); 
    return true; //just for testing 
} 

運行它(我有10周空的div)

$(function(){$("div:blabla").text('3');}); 

但控制檯總是顯示0在IDX。

我在做什麼錯?

jsbin

+0

它似乎是一個硬編碼值'fn(elem,0,args)'在jQuery –

+0

@ArunPJohny以及爲什麼f *是? –

+0

需要看看....只是尋找一些文檔 –

回答

1

jQuery的1.8自定義僞選擇被打破,並且由於它們1.8.1建議使用建築像下面(link) - 使用createPseudo從滋滋選擇器引擎,並支持向後兼容性,如果它不存在:

$.expr[':'].blabla = $.expr.createPseudo ? 
$.expr.createPseudo(function() { 
    return function(elem, doc, isXML) { 
     //return true for matched elements 
    }; 
}) : 
function(elem, i, match) { 
     //return true for matched elements 
}; 

雖然,createPseudo不允許您獲取元素的索引,但可能您可以使用計數器解決此問題。