2013-02-13 155 views
-1

我想獲得以前的ID,我正在做以下,但我從警報(ID)「未定義」;所以在這個例子中,當他們點擊左鍵時,它應該返回step_1。謝謝你的幫助。使用jQuery獲取div元素的以前的兄弟

JavaScript的:

$("body").keydown(function(e) { 
    if(e.keyCode == 37) { // left 
     id = $('.steps.onit').prev().attr('id'); 
     alert(id); 
    } 
    else if(e.keyCode == 39) { // right 
    } 
}); 

UPDATE HTML(DIV是背景圖像):

<div id="container-steps"> 
    <a href="some url"><div id="step_1" class="steps"></div></a> 
    <a href="some url"><div id="step_2" class="steps onit">selected one</div></a> 
    <a href="some url"><div id="step_3" class="steps"></div></a> 
</div> 
+0

必須有別的東西怎麼回事,這並不工作 - 看http://jsfiddle.net/ND5TP/是否有可能你有一個類的多個元素「步驟」? – 2013-02-13 19:08:49

+0

工作正常[這裏](http://jsfiddle.net/MEgYy/)以及... – gdoron 2013-02-13 19:09:35

+0

它返回'step_1'。在Chrome和Firefox上。您正在使用哪個瀏覽器? – SachinGutte 2013-02-13 19:15:13

回答

2

prev發現同級(在同一水平上,共享父母)不表親。

$("body").keydown(function(e) { 
    if(e.keyCode == 37) { // left 
     id = $('.steps.onit').parent().prev().children('.steps').attr('id'); 
     alert(id); 
    } 
    else if(e.keyCode == 39) { // right 
    } 
}); 
0

這應該工作

$("body").keydown(function(e) {if(e.keyCode == 37) { // left 
    var obj = $('.steps.onit'); 
    var id = obj.attr("id"); 
    alert(id);}else if(e.keyCode == 39) { // right}});