1、关于多个html标签单击事件的实现细节

1、对于多个html标签单击事件的错误写法,以及原因分析

     1.1 多个html标签点击事件,的典型错误写法

           1.1.1 html代码         

<body>
		<h1>111</h1>
		<h1>222</h1>
		<h1>333</h1>
		<h1>444</h1>
		<h1>555</h1>
		<h1>666</h1>
</body>
           1.1.2  Javascript代码

<script type="text/javascript">
		window.onload = function() {
			var hlist = document.getElementsByTagName('h1');
			console.log(hlist.length)
				/*错误的写法*/
			for (var i = 0; i < hlist.length; i++) {
				var htag = hlist[i];
				htag.onclick = function() {
					alert(htag.innerHTML);
				}
			}
		}
</script>
         1.1.3  错误写法的结果,以及原因分析

            错误写法的结果:

                      无论点击哪个h1标签,弹出来的都是666

            错误写法的原因分析:

                      因为标签的点击事件,只有在点击标签的时候,才会触发。

                 而在点击标签的时候,i的数值已经为6了,所以,无论点击哪个h1的标签,

                 弹出来的信息都是666.

          

2、正确的写法,利用this关键字

      2.1 多个html标签点击事件,争取的写法

           2.1.1  Javascript的写法         

<script type="text/javascript">
		window.onload = function() {
			var hlist = document.getElementsByTagName('h1');
			console.log(hlist.length)
					
			for (var i = 0; i < hlist.length; i++) {
				var htag = hlist[i];
                                /* 利用this关键字的正确写法 */
				htag.onclick = function() {
					alert(this.innerHTML);
				}
			}
		}
</script>

              2.1.2  Jquery的写法           

<script type="text/javascript" src="../js/jquery.min.js"></script>
<script type="text/javascript">
		$(function() {
			$('h1').click(function() {
				alert($(this).html());
			});
		});
</script>


3、关于点击事件的小案例练习

      3.1 要求

          给所有的a标签里面的img标签,加上单击事件

         3.2 html代码

<body>
 
<div id="myimg">
    <ul>
        <li>
            <a href="photos/image1.jpg" title="1">
                <img src="photos/thumb_image1.jpg" width="72" height="72" alt="" />
            </a>
        </li>
        <li>
            <a href="photos/image2.jpg" title="2">
                <img src="photos/thumb_image2.jpg" width="72" height="72" alt="" />
            </a>
        </li>
        <li>
            <a href="photos/image3.jpg" title="3">
                <img src="photos/thumb_image3.jpg" width="72" height="72" alt="" />
            </a>
        </li>
        <li>
            <a href="photos/image4.jpg" title="4">
                <img src="photos/thumb_image4.jpg" width="72" height="72" alt="" />
            </a>
        </li>
        <li>
            <a href="photos/image5.jpg" title="5">
                <img src="photos/thumb_image5.jpg" width="72" height="72" alt="" />
            </a>
        </li>
    </ul>
</div>
 
</body>
     3.2 Javascript代码

//置入window.onload事件中可确保在所有元素均已加载的前提下执行自定义事件
//或者不置入window.onload时,将功能代码段放在功能代码所依赖的元素之下
 window.οnlοad=function(){
        //获取父容器
        var div=document.getElementById("myimg");
        //查找指定容器下的a标签
        var href=div.getElementsByTagName("a");
        //遍历这些标签
        for(var i=0;i<href.length;i++){
            //给每个标签绑定事件
            href[i].οnclick=function(){
                //测试:获取每个标签中img的地址
                alert(this.getElementsByTagName('img')[0].src);
                //为了测试:使超链接本身跳转功能失效
                //当onclick与href共存时,href跳转执行在onclick之后,且当onclick返回不是false时才执行href的跳转功能
                return false;
        }
    }
}
  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值