Jquery 如何找到具有特定类名的最近的上部元素的ID?
HTML代码: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"
<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);
});