jQuery以最佳方式定位特定链接

时间:2011-02-08 05:35:06

标签: javascript jquery html html5 jquery-selectors

注意:这是一个最好的方式而不是问题。

我在ul中有几个我想要定位的链接但不是每一个标签。虽然我知道我可以通过ID定位每个元素,但我想知道这个任务的最佳实践(最优化的selceting,最少量的代码)是什么。

   $("#id").find("a").click(function(){
  //run function                    
});     

标记:

    <nav id="id">    
  <ul>
    <li id="want-01"><a href="#">link</a></li>
    <li id="want-02"><a href="#">link</a></li>
    <li id="want-03"><a href="#">link</a></li>
    <li id="dont-want-01"><a href="#">link</a></li>
    <li id="dont-want-02"><a href="#">link</a></li>
    <li id="want-04"><a href="#">link</a></li>
    <li id="want-05"><a href="#">link</a></li>
  </ul>       
</nav>

3 个答案:

答案 0 :(得分:2)

这里使用类似乎是合适的。创建一个名为'li_link'的新类,并将其添加到要链接到的li元素中。然后将您的点击处理程序应用于该类的所有元素,例如

$('.li_link').click(function() {...});

如果要更改动态处理的li元素,可以考虑使用实时事件。这允许您从li元素添加和删除'li_link'类,并且单击处理程序将自动应用或停止应用于li元素。

要设置直播活动,请使用以下内容:

 $('.li_link').live('click', function() {...});

答案 1 :(得分:1)

$("#id").find("a").not("#dont-want-01 a, #dont-want-02 a").click(function(){   

});   

答案 2 :(得分:0)

实际上没有办法用HTML来实现,但是如果你实现了一个rel attr或class,你可以很容易地选择它。

   <nav id="id">    
  <ul>
    <li id="want-01" rel="wanted"><a href="#">link</a></li>
    <li id="want-02" rel="wanted"><a href="#">link</a></li>
    <li id="want-03" rel="wanted"><a href="#">link</a></li>
    <li id="dont-want-01"><a href="#">link</a></li>
    <li id="dont-want-02"><a href="#">link</a></li>
    <li id="want-04" rel="wanted"> <a href="#">link</a></li>
    <li id="want-05" rel="wanted"><a href="#">link</a></li>
  </ul>       
</nav>

$("#id").find('li[rel=wanted]').children();