Jquery 如何找到具有特定类名的最近的上部元素的ID?

Jquery 如何找到具有特定类名的最近的上部元素的ID?,jquery,css-selectors,Jquery,Css Selectors,HTML代码: <div id="1" class="master"></div> <div id="2" class="slave"></div> <div id="3" class="slave"></div> <div id="4" class="master"></div> <div id="5" class="slave"></div> <div id="6"

HTML代码:

<div id="1" class="master"></div>
<div id="2" class="slave"></div>
<div id="3" class="slave"></div>

<div id="4" class="master"></div>
<div id="5" class="slave"></div>
<div id="6" class="slave"></div>
然后,单击类为“slave”的DIV元素,我们需要通知类为“master”的最近的上DIV元素的ID,因此,如果我们单击DIV#5或DIV#6,则通知=“4”(DIV#4),如果单击DIV#2或DIV#3,则通知=“1”(DIV#1)。
但是怎么做呢?;)

更新:

$('div').click(function() {
    var el = $(this);
    var master_id = el.prevAll('.master').attr('id');
    alert(master_id);
});
编辑:
您还可以使用过滤器,以便在单击带有calss“master”的div时不会触发事件:

$('div').click(function(e) {
    var el =$(this);
    if (!el.is('.master')){
        var master_id = el.prevAll(".master").attr('id');
    alert(master_id);
    }
我最初认为可以,但经过一些测试后,我注意到它在一个
从机
上不起作用,而不是直接放在另一个
从机
之后。从对手那里抢到第一场比赛效果很好

演示:


最近的遍历父级,它不会像OP所希望的那样找到同级元素。谢谢你的回复。不幸的是,您的实现在单击“从属”DIV元素时会发出“未定义”警报,在单击“主”DIV元素时会发出其ID警报。2非常好,您知道解决方案吗?
$('div').click(function(e) {
    var el =$(this);
    if (!el.is('.master')){
        var master_id = el.prevAll(".master").attr('id');
    alert(master_id);
    }
$('.slave').click(function() {
    var el = $(this);
    var master_id = $(el.prevAll('.master').get(0)).attr('id');
    alert(master_id);
});