鼠标点击页面中的任意标签,alert该标签的名称和 js实现点击<li>标签弹出其索引值
2017-05-20 20:17
711 查看
鼠标点击页面中的任意标签,alert该标签的名称
方法一 :在这里我们可以利用冒泡解决该问题
document.onclick = function(e){ var e=(e||event); var o=e["target"]||e["srcElement"]; alert(o.tagName.toLowerCase()); }
方法二:
进行遍历
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>遍历所有标签进行添加click事件</title> </head> <body> <div class="alert">div</div> <a href="javascript:;" class='alert'>a</a> <b class="hel">b</b> <script> function getTagName(){ return document.getElementsByTagName("*"); } function stopPropagation(e) { e = e || window.event; if(e.stopPropagation) { //W3C阻止冒泡方法 e.stopPropagation(); } else { e.cancelBubble = true; //IE阻止冒泡方法 } } window.onload=function(){ var tagObj=getTagName(); console.log("nihaofdfdfdfdfdfdf"); for(var i=0,max=tagObj.length;i<max;i++){ tagObj[i].onclick=function(e){ stopPropagation(e); alert(this.tagName); } } } </script> </body> </html>
js实现点击标签弹出其索引值
<html> <head> <style> li{ width:50px; height:30px; margin:5px; float:left; text-align: center; line-height: 30px; border-radius:4px; list-style-type: none; background: red; cursor:pointer; } </style> <script> window.onload=function(){ //此处有三种方法 }; </script> <head> <body> <div> <ul> <li>列表1</li> <li>列表2</li> <li>列表3</li> <li>列表4</li> <li>列表5</li> </ul> </div> </body> </html>
第一种:
var oli=document.getElementsByTagName('li'); for(var i=0; i<oli.length;i++) { oli[i].index=i; oli[i].onclick=function(){ alert('你点击的列表的下标是:'+this.index);//列表下标从0开始 }; }
除此之外还有别的方法:
1)通过闭包的方法
var oli=document.getElementsByTagName('li'); for(var i=0;i<oli.length;i++) { oli[i].onclick=(function(n){ return function(){ alert(n); } })(i) }
或者:
2)
var oli=document.getElementsByTagName('li'); for(var i=0;i<oli.length;i++) { (function(n){ oli[i].onclick=function(){ alert(n); } })(i) }
或者
3)
var ul = document.getElementsByTagName("ul")[0]; var li = ul.getElementsByTagName("li"); function foo() { for (var i = 0; i < li.length; i++) { li[i].onclick = (function (i) { return function(){ alert(i); } })(i); } } foo();
或者
4)使用ES6中的新特性let来声明变量
用let来声明的变量将具有块级作用域,很明显可以达到要求,不过需要注意的是得加个’use strict’(使用严格模式)才会生效
function foo() {'use strict' for (let i = 0; i < li.length; i++) { li[i].onclick = function(){ alert(i); } } } foo();
或者
5)事件委托
var ul = document.getElementsByTagName("ul")[0]; var li = ul.getElementsByTagName("li"); ul.addEventListener('click',function(ev){ var ev = ev||window.event; var target = ev.target||ev.srcElement; for( var i=0;i<li.length;i++){ if( li[i] == target){ alert(i); } }
相关文章推荐
- js实现点击<li>标签弹出其索引值
- 请实现,鼠标点击页面中的任意标签,alert该标签的名称.(注意兼容性)
- js实现点击<li>标签弹出其索引值
- 鼠标点击页面中的任意标签,alert该标签的名称.(注意兼容性)
- 四种方法js实现点击<li>弹出索引
- 统计报表中嵌入<a>标签,点击实现弹出清单功能
- [自用门户]jeecms 三级页面内容模板,重点是实现<hr />标签分割线可以参考,css任意位置及长短
- js如何获取点击<li>标签里的值
- JQuery中模拟点击<a>标签,实现页面跳转
- 页面table的每行都有一个<input type='button' />,如何实现点击按钮在按钮下方弹出一个div,点击空白消失
- 关于JSP中单击任意标签弹出文件选择框(<input type="file"/>)的实现方法
- JS 实现点击<a> 标签的时候给其换背景
- <li>的鼠标移入移出事件和点击事件分别实现为当前li添加样式,删除其他li样式
- JS实现点击按钮复制<input>标签中的值到剪贴板
- JS 实现点击<a> 标签的时候给其换背景
- JS如何实现点击页面内任意的链接均加参数跳转?
- 点击<a>标签,禁止页面自动跳到顶部的解决办法
- 帝国cms灵动标签+JS实现【当前栏目高亮】,适用于任意页面
- JS实现在线统计一个页面内鼠标点击次数的方法
- javascript 点击<a></a>标签时 不进行跳转页面的做法