将jQuery代码转换为纯JavaScript

将jQuery代码转换为纯JavaScript,javascript,jquery,Javascript,Jquery,我在jQuery中转换以下代码时遇到问题,有人能给我举个例子吗 $('li').click(function() { window.location = $(this).find(':first-child').attr('href'); });​​​​​​​​​ 详细信息在代码段中注释。通过将事件侦听器添加到父级,我们可以利用捕获、目标、冒泡事件阶段来找出实际单击的元素。这需要一个简单的事件监听器的简单投资,而不是添加几个事件监听器的循环,这有点过分。此过程称为 片段 /*$'li

我在jQuery中转换以下代码时遇到问题,有人能给我举个例子吗

$('li').click(function() {
    window.location = $(this).find(':first-child').attr('href');
});​​​​​​​​​

详细信息在代码段中注释。通过将事件侦听器添加到父级,我们可以利用捕获、目标、冒泡事件阶段来找出实际单击的元素。这需要一个简单的事件监听器的简单投资,而不是添加几个事件监听器的循环,这有点过分。此过程称为

片段

/*$'li'。单击函数{ window.location=$this.find':first child.attr'href'; };*/ //引用所有li的父级 var list=document.querySelector'ul'; //将事件侦听器添加到在任何单击时激发的ul //在任何一个孩子身上,李或她自己 list.addEventListener“单击”,函数E{ //如果单击的实际元素不是ul, //然后声明e.target是 //单击,因为它是事件链上的最后一个元素 如果e.target!==e.currentTarget{ //将e.target的href保存在var tgt中 var tgt=e.target.href; //将新位置指定为tgt的值 window.location=tgt; } console.logtgt; },假;
尝试使用jQuery切断联系的一个非常有用的工具是:

//抓取页面上的所有列表项 var listItems=newArrayDocument.getElementsByTagName'li'; //单击列表项时将分配的函数 函数getHref{ //抓住第一个孩子的心 window.location=this.querySelector':第一个子项.getAttribute'href'; } //循环浏览列表项并分配函数 forvar i=0;i为什么需要将其转换为纯javascript?可以从and开始。为了彻底起见,应该使用if list添加一个防空变量列表的保护{…@RobApodaca如果没有呢?我想如果OP的选择器都是s,这种情况就足够安全了,但是你知道它可能是a,嗯?是的,如果根本没有ul元素,那么list.addEventListener会抛出一个错误。document.querySelector可以返回null-因此代码应该始终防止这种可能性除非该应用程序可以接受抛出错误,否则不可用。