区分相同的类名

时间:2012-05-11 21:35:17

标签: jquery

有两个部分div部分具有相同的类,并且具有相同的ul和li和a。我有jquery点击事件。单击链接时,两个jquery单击事件都将被触发。但我不想要两者,只有一个被解雇。我如何实现这一目标。这是我的dom结构。

<div class = "a">
<ul>  
<li><a href="www.google.com">google</a></li></ul></div>

<div class ="a">
<ul>
<li><a href="www.yahoo.com>yahoo</a></li></ul></div>

href可能会改变,所以我无法将选择器作为基础。

由于

4 个答案:

答案 0 :(得分:3)

只有一个被解雇,你只是错过了解正在发生的事情。试试这个:

$("div.a a").click(function(e){
    e.preventDefault();
    alert(this.href);
});

发布您的代码,我们可以帮助您解决问题。

答案 1 :(得分:0)

您可以使用first()方法触发第一个方法,使用last()方法触发最后一个方法。除此之外,您可能必须实现唯一ID或应用其他类:

http://api.jquery.com/first-selector/

http://api.jquery.com/last-selector/

使用另一个类:

<div class = "a google">  
<ul>    
<li><a href="www.google.com">google</a></li></ul></div>  

<div class ="a yahoo">  
<ul>  
<li><a href="www.yahoo.com>yahoo</a></li></ul></div> 

答案 2 :(得分:0)

您可以使用正确的href属性定位一个:

$('a[href^="wwww.google"]').on('click', function(e) {
   e.preventDefault();
   alert('This is not the Google you are looking for...');
});

如果href发生变化,你无法区分它们,结构中没有ID,类或差异,所以唯一的选择是检查它们在DOM中的索引:

$('.a > ul > li > a').on('click', function(e) {
    e.preventDefault();
    var A = $(this).closest('.a').index();
    if (A==3) {
        alert("this is the one I'm lookin for");
    }
});

答案 3 :(得分:0)

你可以试试这个

$(function(){ $('.a').click(function(){ var a = $(this).val(); alert(a); }); });