Safari中的jQuery语法错误

jay*_*jay 0 safari jquery

任何人都可以告诉我为什么这会在Safari中而不是在Firefox中生成语法错误?

toggle = function(){
        $("#type_new").hide();
        $("a[class^='toggle']").unbind('click').click(function(){
            $.class = $(this).attr("class");
            if($(":input."+$.class+".text").is(':visible')==true) $(this).find("small").html("Add New Type"); else $(this).find("small").html("Choose From Exisiting Types");
            $(":input."+$.class+".select").toggle();
            $(":input."+$.class+".text").toggle().val("");
        });
    };
Run Code Online (Sandbox Code Playgroud)

错误来自:

$ .class = $(this).attr("class");

任何简化也是受欢迎的.这在firefox中运行得很好.另外你可能会问为什么它如此复杂,但有时我会在页面上有多个这样的,所以我需要函数来知道要处理哪一个.

谢谢.

Jon*_*ski 5

您不能定义以保留字命名的属性/变量 - 例如class.

这就是为什么你找到Element.className而不是Element.class在DOM中.

有关它们的列表,请参阅https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Reserved_Words