2011-04-21 64 views
2

說我在嘗試查找元素時犯了一個錯誤,並且我犯了一個錯字,例如$('lsdkfj')。 而不是jQuery返回一個空數組,我想在控制檯中返回一個錯誤消息,如 "The selector 'lsdkfj' cannot be found"。做這件事的最好方法是什麼?如何擴展jQuery的選擇器引擎以在未找到選擇器時發出警告?

+0

下載的jQuery的未精縮版,並開始把'console.info'電話。 – meagar 2011-04-21 13:52:06

+3

使用源盧克:https://github.com/jquery/jquery/blob/master/src/core.js#L72 – Robert 2011-04-21 14:00:35

回答

5

像這樣:

var oldInit = $.fn.init; 
$.fn.init = function(selector, context, rootjQuery) { 
    var result = new oldInit(selector, context, rootjQuery); 
    if (result.length === 0) 
     console.info("jQuery call has no elements!", arguments); 
    return result; 
}; 
+0

這實際上會拋出一個錯誤,因爲上下文將不正確的'makeArray() '。 – 2011-04-21 14:20:00

+0

@尼克:爲什麼?上下文是「this」。 – SLaks 2011-04-21 14:46:29

+0

@SLaks - 你測試了嗎? :) – 2011-04-21 14:47:54