jquery 选择器是否有'not found'例外?



我只是花了"几个小时"在以下场景中:(全部返璞归真)

 $('#typo').bind('click' etc ...

我在选择器中有一个错别字,但 jQuery 解决了

$('#funny something out there').bind(...

没有任何警告。

是否可以告诉jQuery在你的选择器什么也没得到时引发错误?

像这样:

 $('#typo', alert('Stupid, nothing here! like '+ '#typo))

编辑

反对我:

$('#typo', alert('Stupid, nothing here! like '+ '#typo))

不是解决方案。我必须知道错误在哪里才能扩展选择器

您可以使用

以下代码片段:

已更新以处理上下文

演示

jQuery.debug = true;
$ = function (selector, context) {
    if (jQuery.debug && typeof selector === "string" && !jQuery(selector, context).length) 
        throw new Error("No element found!");
    return jQuery.apply(this, arguments);
};
var element = $('#typo');
if (element.length > 0) {
    // element exists
}

除此之外,您必须修改jQuery源代码才能获得该行为。

jquery 选择器返回一个 DOM 元素数组,所以如果你检查它的长度,如果它大于 0,它就会找到一些东西,如果它等于 0,它没有

  if($("selector").length > 0) found;

您可以将返回的 DOM 元素的长度用作 falsy 并抛出一个新error,如下所示:

var el = '#el';
if ($(el).length){
    // Do Stuff
} else {
    throw new Error("Element "+el+" Doesn't Exist");
}

// Ignores Empty Selector
if ($('#el').length){
    // Do Stuff
}

我希望这有帮助!

最新更新