<div id = 'div1'> div innerText </div> <SCRIPT LANGUAGE="JavaScript"> <!-- function fun(para1){ alert(para1.innerText); } setTimeout("fun(document.all.div1)", 1000); //--> </SCRIPT>
我的经验的是,如果para1,para2是对象,就用全局变量表示 <script language="javascript"> var para1; var para2; function g(){ para1=document.getElementById('in1'); para2=document.getElementById('in2'); setTimeout("fun(para1,para2)",1000); } function fun(para1,para2){ alert(para1.value+':'+para2.value); } </script><body> <input type="button" name="Submit" value="按钮" onclick="g();"> <input type="text" id="in1" value="jjj"> <input type="text" id="in2" value="kkk"> </body>
判断一下参数的类型,然后根据类型做出不同的处理, 从而实现通用: function fun(para1){ switch(typeof(para1)){ case 'object': alert('parameter is object');break; case 'string': alert('parameter is string');break; case 'string': alert('parameter is function');break; .... } }
<SCRIPT LANGUAGE="JavaScript"> <!-- function fun(para1){ switch(typeof(para1)){ case 'object': alert('parameter is object');break; case 'string': alert('parameter is string');break; case 'function': alert('parameter is function');break; case 'number': alert('parameter is number');break; case 'boolean': alert('parameter is boolean');break; case 'undefined': alert('parameter is undefined');break; } } setTimeout('fun("abc")', 100); var o = new Object(); setTimeout('fun(o)', 100); function t() {}; setTimeout('fun(t)', 100); //--> </SCRIPT>
谢谢各位: 我又测试了一下,如果参数是对象,直接传就可以;参数为数组时还请大家继续帮忙;<script> function fun(objPrar){ //Other codes; setTimeout("fun(objPara)",1000); } </script>
我的程序代码如下: <img src="img0.gif" onload="imgChange(this,1)"><script language="javascript"> function imgChange(obj,n){ var num=5; obj.src="img"+n+".gif"; n=(n<num)?(++n):(n % num); setTimeout("imgChange(obj,n)",1000); //每一分钟更换一幅图片, //但此处的obj不用全局变量传不进去. } </script>
<img id = 'img1' src="img0.gif" ><script language="javascript"> var o; var n; var num=5; function imgChange(obj,nn){ o = obj; n = nn; o.alt = "img"+n+".gif"; n=(n<num)?(++n):(n % num); setTimeout("imgChange(o,n)",1000); } imgChange(document.all.img1, 1) </script>我也不知道为什么上面的代码可以
那么获取对象就是 document.getElementById('id')传name也可以
document.getElementByName('name')[0]还有一种通用的办法是用eval
object=eval('date1') //假设存在一个名为date1的对象
element=eval('document.all.' + 'p1') //获取一个元素
arr2=eval('arr1') //获取数组,arr1为数组名,String类型
你现在想要做什么?
-----------------------------
我想增加程序的通用性:
比如我传递对象进入程序,在程序中对其操作.
<SCRIPT LANGUAGE="JavaScript">
<!--
function fun(para1){
alert(para1.innerText);
}
setTimeout("fun(document.all.div1)", 1000);
//-->
</SCRIPT>
<script language="javascript">
var para1;
var para2;
function g(){
para1=document.getElementById('in1');
para2=document.getElementById('in2');
setTimeout("fun(para1,para2)",1000);
}
function fun(para1,para2){
alert(para1.value+':'+para2.value);
}
</script><body>
<input type="button" name="Submit" value="按钮" onclick="g();">
<input type="text" id="in1" value="jjj">
<input type="text" id="in2" value="kkk">
</body>
switch(typeof(para1)){
case 'object': alert('parameter is object');break;
case 'string': alert('parameter is string');break;
case 'string': alert('parameter is function');break;
....
}
}
<!--
function fun(para1){
switch(typeof(para1)){
case 'object': alert('parameter is object');break;
case 'string': alert('parameter is string');break;
case 'function': alert('parameter is function');break;
case 'number': alert('parameter is number');break;
case 'boolean': alert('parameter is boolean');break;
case 'undefined': alert('parameter is undefined');break;
}
} setTimeout('fun("abc")', 100); var o = new Object();
setTimeout('fun(o)', 100); function t() {};
setTimeout('fun(t)', 100);
//-->
</SCRIPT>
我又测试了一下,如果参数是对象,直接传就可以;参数为数组时还请大家继续帮忙;<script>
function fun(objPrar){
//Other codes;
setTimeout("fun(objPara)",1000);
}
</script>
<img src="img0.gif" onload="imgChange(this,1)"><script language="javascript">
function imgChange(obj,n){
var num=5;
obj.src="img"+n+".gif";
n=(n<num)?(++n):(n % num);
setTimeout("imgChange(obj,n)",1000); //每一分钟更换一幅图片,
//但此处的obj不用全局变量传不进去.
}
</script>
var o;
var n;
var num=5;
function imgChange(obj,nn){
o = obj;
n = nn;
o.alt = "img"+n+".gif";
n=(n<num)?(++n):(n % num);
setTimeout("imgChange(o,n)",1000);
} imgChange(document.all.img1, 1)
</script>我也不知道为什么上面的代码可以