解决方案 »
- iframe 火狐获取键盘编码问题
- 如果拖动 改变 tables 中 td 的宽度!!
- 找判断不允许输入字母的提交代码。
- jsp页面刷新后数据怎么才能不丢失
- 求一个关于时间段的算法, 关于时间段不能重叠的问题
- 为什么很多问题别人已经结贴了,分数还没加到我得账号上^_^
- ★★哪里有下载比较好的写Javascript代码的软件,如vb一样方便★★
- JavaScript编译时Uncaught TypeError: undefined is not a function
- 为什么把鼠标移到div里的超链接上,就触发了这个div的mouseout事件呢?
- 怎么找出JS里面的广告代码 删除。找不到。
- 这个代码哪里出错了,求救!
- java变量赋值给javascript变量出现乱码怎么办?
function init() {
var pAry = document.getElementsByTagName("p");
for( var i=0; i<pAry.length; i++ ) {
pAry[i].onclick = (function(_i) {
alert(_i);
})(i);
}
}
<html>
<head>
<meta charset="utf-8" />
<title>闭包演示</title>
<style type="text/css">
p {background:gold;}
</style>
<script type="text/javascript">
function init() {
var pAry = document.getElementsByTagName("p");
for( var i=0; i<pAry.length; i++ ) {
pAry[i].onclick = function(x) {
return function(){alert(x);}
}(i)
}
}
</script>
</head>
<body onload="init();">
<p>产品 0</p>
<p>产品 1</p>
<p>产品 2</p>
<p>产品 3</p>
<p>产品 4</p>
</body>
</html>
var pAry = document.getElementsByTagName("p");
for( var i=0; i<pAry.length; i++ ) {
pAry[i].onclick = (function(_i) {
return function(){
alert(_i);
}
})(i);
}
} 不好意思,忘记写return function...了。补上
<style type="text/css">
p {background:gold;}
</style>
<script type="text/javascript">
function init() {
var pAry = document.getElementsByTagName("p");
for( var i=0; i<pAry.length; i++ ) {
pAry[i].onclick = (function(j){
var a=function(){
alert(j);
}
return a;
})(i)
}
}
</script>
</head>
<body onload="init();">
<p>产品 0</p>
<p>产品 1</p>
<p>产品 2</p>
<p>产品 3</p>
<p>产品 4</p>
</body>
</html>
var p = document.getElementsByTagName("p");
for (var i = 0; i < p.length; i++) {
p[i].index = i;
p[i].onclick = function () {
alert(this.index);
}
}
}
for后面的(i) 是什么作用 为什么除了就不行
var pAry = document.getElementsByTagName("p");
var delegate = function(x){
return function(){alert(x)}
}
for( var i=0; i<pAry.length; i++ ) {
pAry[i].onclick = delegate(i)
}
pAry = delegate = null
//把delegate 和 for连到一起就是上面的代码,建议使用这种方式,上面的代码有循环引用的嫌疑
}