Javascript 如何使用div id获取li的onclick事件

Javascript 如何使用div id获取li的onclick事件,javascript,yui,Javascript,Yui,如果代码段如下所示: <div id="test"> <div> <h3>First section</h3> <ul> <li><a href="http://example.com">Item 1</a></li> <li><a href="http://example.com">Item 2</a></li> <l

如果代码段如下所示:

<div id="test">

<div>
<h3>First section</h3>
 <ul>
  <li><a href="http://example.com">Item 1</a></li>
  <li><a href="http://example.com">Item 2</a></li>
  <li><a href="http://example.com">Item 3</a></li>
 </ul>
</div>

<div>
<h3>Second section</h3>
<ul>
  <li><a href="http://example.com">Item 4</a></li>
  <li><a href="http://example.com">Item 5</a></li>
  <li><a href="http://example.com">Item 6</a></li>
 </ul>
</div>

</div>
这仅适用于第一部分ul。对于Nuls,我需要同样的结果。最好的方法是什么。提前谢谢


注意:在我的项目中,我不能使用jquery。只支持javascript或YUI

在每个
ul
上迭代,并向其中添加单击处理程序

var uls=document.getElementById(“test”).getElementsByTagName(“ul”);
对于(变量i=0;i

第一节
第二节

在每个
ul
上迭代,并向其中添加单击处理程序,如下所示

var uls=document.getElementById(“test”).getElementsByTagName(“ul”);
对于(变量i=0;i

第一节
第二节

您可以使用事件委派来实现预期结果

  • 将单个事件处理程序绑定到父级,并从
    event.target
  • //获取div测试的对象
    var testDiv=document.getElementById('test');
    //div测试对象的Bind onclick事件
    testDiv.onclick=函数(e){
    //阻止默认href操作(可选)
    e、 预防默认值();
    //检查目标元素是否为锚定标记
    如果(e.target.nodeName=='A'){
    警报(e.target.innerHTML);
    }
    }
    
    第一节
    
    第二节

    您可以使用事件委派来实现预期结果

  • 将单个事件处理程序绑定到父级,并从
    event.target
  • //获取div测试的对象
    var testDiv=document.getElementById('test');
    //div测试对象的Bind onclick事件
    testDiv.onclick=函数(e){
    //阻止默认href操作(可选)
    e、 预防默认值();
    //检查目标元素是否为锚定标记
    如果(e.target.nodeName=='A'){
    警报(e.target.innerHTML);
    }
    }
    
    第一节
    
    第二节
    var ul = document.getElementById("test").getElementsByTagName('ul')[0];
    ul.onclick = function(event) {
    event = event || window.event;
    var target = event.target || event.srcElement;
    alert(target.getAttribute("href"));
    };