广义。长度检查功能

时间:2010-02-15 14:26:59

标签: jquery

当我在JS或jQuery中编写函数并且需要参数时,我使用if something.length技巧......

this.example = function(e) {
  if ($(e).length) {
    /*blablabla*/
  } else {
    return false;
  }
}

但我不想在所有功能中这样做。有没有办法概括这个?

像:

this.ck = function(e) {
  return function(e){
    if (!(e.length)) { return false;}
  }
}

this.example = function(e) {
     ck(e)
    /*blablabla*/

}

2 个答案:

答案 0 :(得分:2)

也许这个,但见下文:

function ifNonEmpty(f) {
  return function(e) {
    if (!$(e).length) return false;
    return f(e);
  };
}

你会这样使用:

var myCoolFunction = ifNonEmpty(function myCoolFunction(e) {
  // your implementation
};

但我建议不要编写将jQuery对象作为参数的函数,而是将这些函数编写为您自己的jQuery插件。

答案 1 :(得分:1)

我建议如下。

此示例首先测试参数是否实际包含任何内容(即不为空),然后您的.length检查可以是否为

function isNonEmpty(p){
    if ( (p != null) && (p.length > 0) ){
        //test
    }
}

无论如何,我会谨慎使用.length。例如,如果传递字符串.length将有一个值!

测试某些东西是否是jQuery对象:

alert(p instanceof jQuery); //will alert "true" if p is a jQuery object.

所以,这给了我们:

function isNonEmpty(p){
    if ( (p != null) && (p instanceof jQuery) && (p.length > 0) ){
        //test
    }
}

或类似的东西。无论哪种方式,都应该有足够的代码来定制你的意图。