使用jquery代码的TypeOf问题

时间:2016-06-17 11:32:16

标签: javascript jquery

我遇到了一些代码问题......

这是代码:

(function($) {
    $.fn.inc = function(url, transform, post, t) {
        return this.length && url ? this.each(function() {
            t = $(this);
            $.ajax({
                url: url,
                success: function(txt, jqXHR, textStatus) {
                    t.html($.isFunction(transform) ? transform(txt, url) : txt);
                    $.isFunction(post) && post(url, jqXHR, textStatus);
                }
            });
        }) : this;
    };

    $(function() {
    $('[class*="inc:"]').each(function() {
        var match = /inc:(\S+)/.exec(this.className || '');
        if(typeOf(match[1]) != "undefined")
          match && $(this).inc(unescape(match[1]));
    });

  });

})(jQuery);

并在第18行指出了这个错误:

ReferenceError: typeOf is not defined


if(typeOf(match[1]) != "undefined")

代码出了什么问题?

错误图片: enter image description here

此错误指向:

TypeError: a is null

**return (a.ownerDocument || a) !== n && m(a), t(a, b)**

3 个答案:

答案 0 :(得分:2)

您要查找的运算符typeof 全部为小写。 JavaScript区分大小写。

请注意,它是一个操作员,而不是一个功能,所以你不需要括号(尽管它们实际上并没有受到伤害)。

另请注意,.exec() method可以返回null,因此您需要{/ 1}} match 之前尝试将其用作{阵列:

null

或者只是:

if (match != null && typeof match[1] != undefined)

但是你不应该测试if (match && typeof match[1] != undefined) 是否match[1],因为如果undefined本身不是match那么这意味着你的正则表达式匹配包括子串比赛。所以以下应该没问题:

null

答案 1 :(得分:1)

typeof不是一个功能,它是一个运营商。

您应该以这种方式使用它:

if(typeof match[1] != "undefined")

它应该是小写的。

答案 2 :(得分:0)

这应该是typeof(小' O')