Safari中的jQuery语法错误

时间:2009-10-29 16:10:54

标签: jquery safari

有谁可以告诉我为什么这会在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("");
        });
    };

错误来自:

  

$ .class = $(this).attr(“class”);

欢迎任何简化。这在firefox中运行得很好。你也可能会问为什么它如此复杂,但有时候我在页面上会有不止一个,所以我需要这个函数知道要处理哪一个。

感谢。

2 个答案:

答案 0 :(得分:5)

您无法定义以保留字命名的属性/变量 - 例如class

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

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

答案 1 :(得分:0)

尝试用其他东西替换$ .class,因为我认为对于某些浏览器,“class”字是保留的。

相关问题