有谁可以告诉我为什么这会在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中运行得很好。你也可能会问为什么它如此复杂,但有时候我在页面上会有不止一个,所以我需要这个函数知道要处理哪一个。
感谢。
答案 0 :(得分:5)
您无法定义以保留字命名的属性/变量 - 例如class
。
这就是为什么你在DOM中找到Element.className
而不是Element.class
。
有关它们的列表,请参阅https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Reserved_Words
答案 1 :(得分:0)
尝试用其他东西替换$ .class,因为我认为对于某些浏览器,“class”字是保留的。