Javascript functionname.arguments在Mozilla中不起作用
我在IE中有完美的功能,但在mozilla中没有Javascript functionname.arguments在Mozilla中不起作用,javascript,Javascript,我在IE中有完美的功能,但在mozilla中没有 function showhide() { alert("test"); var args=showhide.arguments; alert("1"+args); for (i=0; i<(args.length); i=i+2) { alert("2"+args); eval(args[i]+".style.display='"+args[i+1]+"'"); } alert("3"+args); } 我在mo
function showhide()
{
alert("test");
var args=showhide.arguments;
alert("1"+args);
for (i=0; i<(args.length); i=i+2)
{
alert("2"+args);
eval(args[i]+".style.display='"+args[i+1]+"'");
}
alert("3"+args);
}
我在mozilla中得到了警报测试,但警报的其余部分不会显示。只需使用参数,而不是showhide。arguments函数。arguments是,只需单独使用参数
var args = arguments;
编辑
替代你所做的事情
function showHide(elementStyles) {
for (id in elementStyles) {
alert(id + " / new style=" + elementStyles[id]);
document.getElementById(id).style.display = elementStyles[id];
}
}
showHide({
myElementId1: "block",
myElementId2: "none",
myElementId3: "inline"
});
或者使用参数
你的代码在很多方面都很糟糕:1你泄露了一个全局i,2你以不恰当的方式使用eval。除此之外,考虑使用像jQuery这样的框架。忽略那些没有足够信息的人使用jQuery的建议来做这个建议。@切丹:不要使用EVAL。这几乎总是错误的解决方案。为什么要使用它?我假设参数是成对的ID和显示设置。如果是这样,请尝试document.getElementByIdargs[i].style.displayargs[i+1]仍然只测试打印,之后我将获得类似错误的未捕获异常:[异常…提示被用户nsresult中止:0x80040111 NS\u错误\u不可用位置:JS frame::resource://gre/components/nsPrompter.js ::openTabPrompt::第468行数据:否]
function showHide() {
for (var i = 0; i < arguments.length; i += 2) {
alert(arguments[i] + "/" + arguments[i + 1]);
... something other than eval here
}
}
showHide("myElementId1", "block", "myElementId2", "none");