发布网友 发布时间:2022-04-23 04:06
共7个回答
热心网友 时间:2022-04-22 16:44
方法/步骤
首先我们打开Sublime Text软件,新建一个HTML的文档,如下图所示
接下来在html中添加JS方法,在JS方法里面设置一个for循环,输出每次循环的值,如下图所示
然后我们运行程序,你会看到在输出栏中输出了10次10,而并没有从1开始输出,如下图所示
接下来我们更改一下for循环中的逻辑,利用闭包将i的值传递给a,如下图所示
这次在运行程序我们就可以看到输出内容是1开始输出了,如下图所示
另外,在JS中刚才的写法还可以按照下面的方式实现,如下图所示
7
综上所述,在JS中如果for循环中有异步方法,就需要用闭包的方式保留当前循环变量值,是不是很简单啊
热心网友 时间:2022-04-22 18:02
修改了问题吗?太鸡贼了。
不知道你引用了什么框架,按我理解$+function这个函数根本没有执行,另外,你的分号好像用错了。
将函数单独拿出来执行。
// 改为英文分号以下是原回答:
-----------------------------
不是延迟显示,而是语法错误,代码中变量aaa只是个值,所以你的代码只会改变aaa变量本身,并不会更改#a元素的value,正确代码如下:
<input id="a">追问我是用asp写的,的值通过授予,然后js通过判断的值向传值判断是“成功”还是“失败”,清除浏览器缓存后,第一次打开是无值的,刷新一下才显示“成功”
追答建议你在我原回答的代码基础上修改,避免一些低级错误。
热心网友 时间:2022-04-22 19:37
<%bb=2%>
<input id="a">
<input id="b" value=<%=bb%>>
<script>
$(function(){
if ($("#b").val()=="2"){
$("#a").val("成功");
}else{
$("#a").val("失败");
}
});
</script>
热心网友 时间:2022-04-22 21:28
直接这么写试试
<%bb=2%>不要写成函数
热心网友 时间:2022-04-22 23:36
<%bb=2%> 这个赋值比 if (bbb.value==2){ aaa.value="成功" } 这个判断慢,所以第一次刷新没有显示,第二次刷新的时候,那个input a 里有缓存的值,所以第二次刷新才会显示成功
热心网友 时间:2022-04-23 02:01
既然改了问题,那就来改改回答,如果是现在这样的代码出了问题,建议你在浏览器打开页面后按F12调出控制台console,看下有没有报错。
热心网友 时间:2022-04-23 04:42
通过setTimeout函数调用。如下:
setTimeout( function(){
//add your code
}, 5 * 1000 );//延迟5000毫米
setTimeout() 的第一个参数是含有 JavaScript 语句的字符串。这个语句可能诸如 "alert('5 seconds!')",或者对函数的调用,诸如 alertMsg()"。
第二个参数指示从当前起多少毫秒后执行第一个参数。

扩展资料
延迟运行,setTimeout函数用法的具体事例:
<script language="javascript">
function test(obj)
{
alert(obj);
setTimeout("test()",1000);
}
</script>
<input id="testButton" type="button" onclick="test(this)">
setTimeout里的test()没带参数,第一次显示[object],1000毫秒之后显示undefined,变量尚未赋值,也就是说用此方式可以实现带参数的方法循环,但是参数被销毁。
其实这很简单就可以实现,不必写那么长的代码来实现。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>