functionname.arguments在Mozilla中不起作用

时间:2012-01-24 14:23:47

标签: 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);
}

我在mozilla中得到警告test但是没有显示其他警报。

2 个答案:

答案 0 :(得分:4)

Function.Argumentsdepreciated,只需自行使用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"
});

或使用arguments

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");

答案 1 :(得分:3)

只需使用arguments代替showhide.arguments