有两个部分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可能会改变,所以我无法将选择器作为基础。
由于
答案 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); }); });