2013-02-13 89 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}});