2015-08-15 46 views
-1

我有列表项。现在我想点击列表项。使用jquery我能够做到这一点。 http://jsfiddle.net/aec8v3c8/4/如何在不使用jQuery的情况下点击列表项目?

<li class="corner-all" data-value="1aj"></li> 
<li class="corner-all" data-value="2aj"></li> 
<li class="corner-all" data-value="3aj"></li> 

$('li[data-value="1aj"]').click(function(){ 
    alert('This item is clciked'); 
}); 

我们如何能做到这一点,而不使用jQuery?

+0

去看看[document.querySelectorAll(HTTPS: //developer.mozilla.org/en-US/docs/Web/API/Document/querySelectorAll)和[addEventListener](https://developer.mozilla.org/zh-TW/docs/Web/API/EventTarget/addEventListener )。 – fuyushimoya

回答

3

记得有什么 jQuery的可以做,不能以纯JS来完成(和运行速度更快):

var lis = document.querySelectorAll('li[data-value="1aj"]'); 
 

 
for(var i = 0; i < lis.length; i++) { 
 
    lis[i].addEventListener('click', function(){ 
 
    alert('Item clicked'); 
 
    }) 
 
}
<li class="corner-all" data-value="1aj"></li> 
 
<li class="corner-all" data-value="2aj"></li> 
 
<li class="corner-all" data-value="3aj"></li>

+0

来自w3schools.com .. 注意:Internet Explorer 8和更早版本以及Opera 7.0和更早版本不支持addEventListener()方法。但是,对于这些特定的浏览器版本,可以使用attachEvent()方法附加事件处理程序。 – vinayakj

+0

是否有任何其他方式在所有浏览器上传递此程序?我的工作是检查该程序是否在窗口7上的IE8,opera7和其他浏览器上正确运行。 – ajayv

+0

今年是2015年,如果您希望从2009年开始支持浏览器,则需要检查它们的后备/填充。例如:你可以检查一个函数是否存在,如下所示:if(window.addEventListener){//普通浏览器} else if(window.attachEvent){//古董IE} else if ... etc' – Shomz

相关问题