+ -
当前位置:首页 → 问答吧 → 好奇怪的错误

好奇怪的错误

时间:2009-04-28

来源:互联网

<a href="1.jsp">111</a>
<a href="2.jsp">222</a>
<a href="3.jsp">333</a>

<script type="text/javascript">
var allhref=document.getElementsByTagName("a");
var i=0;
for(i=0;i<allhref.length;i++){
allhref【i】.onclick=function (){alert(allhref【i】.href);return false;}
}

</script>

红色标记部分alert无法运行,但是把alert(allhref【i】.href)改成alert(allhref[0].href)就可以了
变量i为什么不能传进来么

作者: ldb2741   发布时间: 2009-04-28

不是i传不过去,是你的方法有问题。
我给你提供个jquery的写法:
$(function(){
  var all=$.find("a");
  $(all).each(function(){
       $(this).click(function(){
           alert($(this).attr("href"));
           return false;
       });
   });
});

作者: fanht   发布时间: 2009-04-28

$("a").click(function(){
alert(this.href);
return false;
});

作者: gordianyuan   发布时间: 2009-04-28

引用
引用楼主ldb2741于2009-04-28 12:25发表的 好奇怪的错误 :
<a href="1.jsp">111</a>
<a href="2.jsp">222</a>
<a href="3.jsp">333</a>

<script type="text/javascript">
.......

兄弟,你的写法有问题,给你一个对的,闭包来解决,
$(function(){ 
var allhref = document.getElementsByTagName("a");
            var i = 0;
            for (i = 0; i < allhref.length; i++) {
                allhref【i】.onclick = function() {
                    var temp = allhref【i】;
                    return function() { alert(temp.href); return false; }
                } (  );
            }
});

或者直接
$(function(){ 
var allhref = document.getElementsByTagName("a");
            var i = 0;
            for (i = 0; i < allhref.length; i++) {
                allhref【i】.onclick = function() { 
                     alert(this.href); return false; 
                } ;
            }
});
[ 此帖被seekarmor在2009-04-28 21:47重新编辑 ]

作者: seekarmor   发布时间: 2009-04-28

相关阅读 更多

热门下载

更多