javascript 变量如何做常量用

lvcoffee 2008-07-17 07:23:39
有如下CASE
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title></title>
</head>

<body>
<div id="div1">div1</div>
<br>
<div id="div2">div2</div>
<br>
<div id="div3">div3</div>
<script language="javascript">

for(i=1;i<4;i++)
{
document.getElementById("div"+i).addEventListener("click",function (){
TellMe(i);}, //如何把这里的i转成,1,2,3
false);
}
function TellMe(cn)
{
alert(cn);
}
</script>
</body>
</html>

即要达到点"div1",alert(1);点"div2",alert(2);点"div3",alert(3);
...全文
159 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
dvdface 2008-07-24
  • 打赏
  • 举报
回复
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title> </title>
</head>
也可以利用Function动态创建函数

<body>
<div id="div1">div1 </div>
<br>
<div id="div2">div2 </div>
<br>
<div id="div3">div3 </div>
<script language="javascript">

for(i=1; i<4; i++)
{
document.getElementById("div"+i).addEventListener("click",new Function ("TellMe("+i+");"),
false);
}
function TellMe(n)
{
alert(n);
}
</script>
</body>
</html>
lvcoffee 2008-07-18
  • 打赏
  • 举报
回复
谢谢楼上的,果然可以,我找到了另一种方法也达到了目的,如下:
<body>
<div id="div1">div1</div>
<br>
<div id="div2">div2</div>
<br>
<div id="div3">div3</div>
<script language="javascript">
/* 将参数的函数封装为无参数的函数 */
function createFunction(obj, strFunc){
var args = [];//定义args用于存储传递给事件处理程序的参数
if(!obj) obj = window;//如果是全局函数则obj = window;
//得到传递给事件处理程序的参数
for( var i = 2; i<arguments.length; i++)
args.push(arguments[i]);

//用无参函数封装事件处理程序的调用
return function(){
strFunc.apply(obj, args);//将参数传递给指定的事件处理程序
}
}

for(i=1;i<4;i++)
{
var myFun=createFunction(null,TellMe,i)
document.getElementById("div"+i).addEventListener("click",myFun,
false);
}
function TellMe(cn)
{
alert(cn);
}
</script>


</body>
xsjohn 2008-07-17
  • 打赏
  • 举报
回复
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title> </title>
</head>

<body>
<div id="div1">div1 </div>
<br>
<div id="div2">div2 </div>
<br>
<div id="div3">div3 </div>
<script language="javascript">
for(i=1;i <4;i++)
{
eval("var fn=function(){TellMe("+i+");};");
document.getElementById("div"+i).attachEvent("onclick",fn);
}
function TellMe(cn)
{
alert(cn);
}
</script>
</body>
</html>
利用eval把变量做常量用

3,423

社区成员

发帖
与我相关
我的任务
社区描述
其他开发语言 其他开发语言
社区管理员
  • 其他开发语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧