19

我有一个非常简单的问题。

如何找到另一个元素的第一个前一个元素?我尝试了下面的代码但没有成功。

HTML:

<div class = "A">HERE</div>

<div class="B">
    <div class="C" style="width:50px;height:50px;background-color:#000000;"></div>
</div>

JS:

$('.C').click(function() {

        alert($(this).closest('.A').html());

});

小提琴:http: //jsfiddle.net/Mcujp/4/

4

4 回答 4

28

如果您尝试获取前面的兄弟,请使用.prev().

如果您试图获取父母的兄弟姐妹(如您的示例中),请使用.parent().prev().

于 2013-05-08T22:24:42.943 回答
8

尝试这个:

$('.C').click(function() {

        alert($(this).parent().prev('.A').html());

});
于 2013-05-08T22:24:34.490 回答
5
$('.C').click(function() {
   alert($(this).closest('.B').prev('.A').html());
});
于 2013-05-08T22:24:51.877 回答
0

如果你想定位最接近父级的孩子,你可以按照下面的定义来做。

让我们假设你有一个 HTML

<div class="top-parent">
  <div class="parent">
    <button class="add-button">Child of 1st Parent DIV</button>
  </div>
  <div class="parent">
    <button class="add-button">Child of 2nd Parent DIV</button>
  </div>
</div>
<script>
$(document).on('click','.add-button',function(){
   $(this).parents('.parent').prev().closest('.parent').find('.add-button').text('im clicked by one of the button next to my parent')
   $(this).parents('.parent').remove();
})
</script>

同样,如果您想定位祖父母下一个父容器,则只需更改.prev().next()

希望我让定义变得简单:)

于 2020-01-06T09:08:39.177 回答