【问题标题】:How do I extend jQuery's selector engine to warn me when a selector is not found?如何扩展 jQuery 的选择器引擎以在找不到选择器时警告我?
【发布时间】:2011-08-10 08:11:33
【问题描述】:

假设我在尝试查找元素时犯了一个错误,并且输入了一个错字,例如 $('lsdkfj')。 我想在控制台中返回一条错误消息,而不是 jQuery 返回一个空数组,例如 "The selector 'lsdkfj' cannot be found"。这样做的最佳方法是什么?

【问题讨论】:

标签: jquery sizzle


【解决方案1】:

像这样:

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;
};

【讨论】:

  • 这实际上会引发错误,因为makeArray() 的上下文不正确。
  • @Nick:为什么?上下文是this
  • 已修复。我仍然不确定问题是什么; this 应该是新对象,因为 init 被称为 ctor。
  • @SLaks - 确保测试!,这将每次调用console.info(),因为第一遍的长度将是0 :)
  • 不错,这是我一直在寻找的方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多