2016-01-03 32 views
0

我创建了自定义函数goToNext()它只是提醒我点击下一个元素的ID。如何创建一个函数获取jquery中下一个元素的id并调用此函数?

我想在另一个点击函数中调用这个自定义函数。

现在,当我点击第一个元素它提醒​​(下一个从第一,所以它的确定),但如果您单击第二个元素,它不会返回id_3(像它应该是),但它返回​​相同如果您单击最后一个元素(应该提醒第一)

这是我jsfiddle example here

function goToNext() { 
 
    var get_next_id = $('.btn').next().attr("id"); 
 
    alert(get_next_id); 
 
} 
 

 
$('.btn').click(function() { 
 
    goToNext(); 
 
});
.btn { 
 
    width: 50px; 
 
    height: 50px; 
 
    margin: 10px auto; 
 
    background-color: yellow; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<div class="btn" id="id-1"> 
 
    1 
 
</div> 
 
<div class="btn" id="id-2"> 
 
    2 
 
</div> 
 
<div class="btn" id="id-3"> 
 
    3 
 
</div>

+1

请检查https://jsfiddle.net/y0dc5ooc/4/ –

+0

谢谢@ParthTrivedi – Sushi

回答

1

你必须使用this

function goToNext(thisObj){ 
 
var get_next_id = $(thisObj).next().attr("id"); 
 
    if(get_next_id!=undefined) 
 
     alert(get_next_id); 
 
    else 
 
     alert($(thisObj).parents().find("div:first").attr("id")); 
 
} 
 

 
$('.btn').click(function(){ 
 
goToNext(this); 
 
});
.btn{ 
 
    width:50px; 
 
    height:50px; 
 
    margin:10px auto; 
 
    background-color:yellow; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class ="btn" id="id-1"> 
 
1 
 
</div> 
 
<div class ="btn" id="id-2"> 
 
2 
 
</div> 
 
<div class ="btn" id="id-3"> 
 
3 
 
</div>

+0

请检查它适用于所有的'div' –

+0

谢谢帕蒂不错的工作 – Sushi

1

试试这个

function goToNext($btn){ 
var get_next_id = $btn.next().attr("id"); 
alert(get_next_id); 
} 

$('.btn').click(function(){ 
goToNext($(this)); 
}); 
+1

谢谢@ViRuSTriNiTy它工作得很好 – Sushi

+1

@Sushi顺便说一句,你甚至可以使用'$(”缩短了一点。BTN ').click(goToNext)' – ViRuSTriNiTy

+0

是更干净谢谢 – Sushi

1

您需要使用参考this

function goToNext(e){ 
    var get_next_id = $(e).next().attr("id"); 
    alert(get_next_id); 
} 

$('.btn').click(function(){ 
    goToNext(this); 
}); 

Updated Fiddle

相关问题