javascript - JS事件委托問題
問題描述
<!DOCTYPE html><html lang='zh'><head>
<meta charset='UTF-8'><title>Title</title><style type='text/css'> li{list-style: none;cursor: pointer; }</style><script type='text/javascript'> window.onload = function(){var Ul = document.getElementById('ul');var Li = Ul.getElementsByTagName('li');Ul.onclick = function(ev){ var ev = ev || window.event; var target = ev.target || ev.srcElement; if(target.nodeName.toLowerCase() == 'li'){var index = 0;for(var i=0;i<Li.length;i++){ if(Li[i]===target){index=i; };}if(index>=0){ alert(’索引是’+index);} }} }</script>
</head><body>
<ul id='ul'>
<li>首頁</li><li>新聞</li><li>娛樂</li>
</ul>
</body></html>
我想問一下,這種用事件委托的方式獲取索引的方式,有沒有更加簡單的方法呢?
問題解答
回答1:children轉(zhuǎn)換為Array,然后直接調(diào)用indexOf。(沒考慮兼容性……)
<ul id='ul'> <li>1</li> <li>2</li> <li>3</li></ul>
const ul = document.querySelector(’#ul’)const children = Array.prototype.slice.call(ul.children)ul.onclick = (ev) => { const target = ev.target; console.log(’current index’, children.indexOf(target))}
這里有個例子
相關(guān)文章:
1. html5 - 我引用的是花瓣網(wǎng)上的圖片,在自己電腦上可以正常顯示(狀態(tài)碼200),但在別人電腦上是403forbid,有大神知道是什么嗎?2. javascript - 微信小程序picker為什么會變成兩行?3. objective-c - 同一個APP的微信登錄的微信開發(fā)平臺賬號和微信支付的微信開發(fā)平臺賬號可以是不同一個嗎?4. javascript - 百度echarts series數(shù)據(jù)更新問題5. css3 - [CSS] 動畫效果 3D翻轉(zhuǎn)bug6. html5 - Chrome訪問本地文件緩慢7. flask+vue+webpack使用nginx+uwsgi部署問題8. javascript - 我寫的href跳轉(zhuǎn)地址不是百度,為什么在有的機型上跳轉(zhuǎn)到百度了,有的機型跳轉(zhuǎn)正確9. html5 - H5移動端UC瀏覽器的,跳轉(zhuǎn)下一個頁面,下一個頁面input輸入框獲取焦點后,會帶出上一頁的內(nèi)容?10. 在ios下 微信打開iframe鏈接的頁面時 在微信里長按無法識別二維碼
