javascript变量再赋值

十分不解,javascript无法二次赋值么?请高手帮忙看看:<script>vari=1functiondd(i){{alert(i)vari=0}setTimeout... 十分不解,javascript无法二次赋值么?
请高手帮忙看看:
<script>
var i=1
function dd(i)
{
{
alert(i)
var i=0
}setTimeout('dd(i)',1500)
}
setTimeout('dd(i)',1500)

</script>

这个I的值却始终是1.
有什么办法让它的值转为0么?
程序是由VB赋值给A.HTML页面,然后再由A.HTML页面赋值给B.HTML,A中有个IFRAME,包含着B.HTML.
* A页面和B页面都在VB的WebBrowser1内,
Private Sub Timer1_Timer()
WebBrowser1.Document.parentWindow.execScript "gxnbdhs=""" & gxnbdhs & """;", "javascript"
End Sub
* 现在VB中的gxnbdhs是在不断变化的.并且A中取VB的变量gxnbdhs是可以实现的.
* B页面中取A页面值的办法是:var gxnbdhs=window.parent.gxnbdhs;
最终目的是实现B.HTML中的gxnbdhs与VB中的gxnbdhs同步变化.
但实测时B中的gxnbdhs不能变化,必须刷新一次才能改变gxnbdhs.这个难住了.
请问,JavaScript有没有办法解决此问题?
非常感谢.
展开
 我来答
mamimoluo
推荐于2016-01-20 · TA获得超过415个赞
知道小有建树答主
回答量:386
采纳率:0%
帮助的人:340万
展开全部
楼上两位不要误人子弟,什么叫不能再定义了?
作用域问题!看下面的注释吧
-----------------------
<script>
var i=1; //全局变量
function dd(i)
{
{
alert(i); //这里弹出的是全局变量i,所以是1
var i=0; //这里又定义了一个局部变量i,等于0,且每次执行都重新定义这个局部变量,并等于0;这个i的作用域范围就是在dd()函数体内,每次dd()函数执行完自动销毁
}setTimeout('dd(i)',1500)
}
setTimeout('dd(i)',1500)
</script>
--------------------
要i等于0,在你的基础上有两个办法:
1:修改全局变量i
<script>
var i=1
function dd(i)
{
{
alert(i)
window.i=0 //这里修改的是第一行定义的那个i,第一次弹出1,以后弹出0
}setTimeout('dd(i)',1500)
}
setTimeout('dd(i)',1500)
</script>

2:
<script>
var i=1
function dd(i)
{
{
var i=0
alert(i) //两句对调,但这个i就成了dd()函数体内的局部变量,所以一直弹出0
}setTimeout('dd(i)',1500)
}
setTimeout('dd(i)',1500)
</script>
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友a071464
2009-01-17 · TA获得超过223个赞
知道答主
回答量:209
采纳率:0%
帮助的人:115万
展开全部
楼上的说得很对。·····

汗,变量可以更改值多次,但是声明只能声明一次,

比如int i; 这里i可以多次更改值,比如:i=1;i=2;i=3;等等

但是int只能用一次,也就是说写了一次int i;就不能再写1次int i了,

因为同样一个变量不能两次声明····
int i;
int i;这样是不允许的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
天使的禁區
2009-01-17 · TA获得超过3631个赞
知道大有可为答主
回答量:1708
采纳率:0%
帮助的人:0
展开全部
始终是1,是因为你定义的全局变量,在alert()方法的时候被输出,所以你要仔细想想自己想得到的结果然后去定义局部或者全局变量,这个3楼的说的没错,还有就是你想在javascript中不刷新页面实现同步是不可能的,你可以用Ajax实现同步处理~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
天梦半纯唯19
2009-01-17 · TA获得超过1265个赞
知道小有建树答主
回答量:1348
采纳率:0%
帮助的人:1309万
展开全部
这个问题很简单
你已经定义了i
var i
就不能再定义i
你看看你的代码
总共写了2次
var i
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式