如果元素不存在,则为jQuery异常

时间:2010-05-11 15:48:23

标签: javascript jquery

我使用jQuery并且我需要获得任何时间和任何异常(使用任何操作),如果我附加一些事件或尝试使用不存在的元素(从选择器获取)执行某些操作。 对于这个问题,jQuery中是否有一些内部的“严格”模式?

3 个答案:

答案 0 :(得分:5)

不,没有。

但是,您可以为它制作一个简单的插件:

$.fn.checkEmpty = function() {
    if (!this.length)
        throw new Error("No elements matched by " + this.selector);
    return this;
};

$('...').checkEmpty().bind(...);

可替换地:

function $s() { return $.apply(this, arguments).checkEmpty(); }

$s('...').bind(...);

答案 1 :(得分:1)

查看此帖子,了解处理“存在”的方法

Exists in jquery

答案 2 :(得分:0)

不,这是jQuery的魅力。

您可以创建包装函数

function myjQuery() {
  var res = $.apply(this, arguments);

  if (!res.size()) {
    throw new Error("No elements matched :(");
  };

  return res;
};

myjQuery('input').each();

这不会掩盖使用find()filter()等返回的空集,但是哼哼......