1

有两个部分 div 部分具有相同的类,并且具有相同的 ul 和 li 和 a。我有 jquery 点击事件。单击链接时,两个 jquery click 事件都会被触发。但我不希望两者都被解雇,只有一个被解雇。我如何做到这一点。这是我拥有的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

4 回答 4

3

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

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

发布您的代码,我们也许可以帮助您修复它。

于 2012-05-11T21:38:29.487 回答
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");
    }
});
于 2012-05-11T21:52:56.200 回答
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> 
于 2012-05-11T21:38:51.453 回答
0

你可以试试这个

$(function(){ $('.a').click(function(){ var a = $(this).val(); alert(a); }); });
于 2015-11-03T11:03:47.247 回答