You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何选中所有兄弟元素的子元素?用jQuery遍历实现div悬停加类

嘿,这两个jQuery的需求我帮你拆解清楚,直接上解决方案:

1. 如何选中所有兄弟元素的子元素?

要选中某个元素的所有兄弟元素里的子元素,核心是结合jQuery的兄弟选择方法与后代查找,常用两种实用思路:

  • 如果你已经拿到了当前目标元素(比如$(this)),可以先获取它的所有兄弟元素,再用.find()精准定位子元素:
    // 示例:选中当前div的所有兄弟div里的<h2>标签
    $(this).siblings('div').find('h2');
    
  • 另一种方式是先定位父容器,再筛选出父容器内除当前元素外的所有子元素,最后查找它们的子节点:
    // 示例:选中当前div的父元素下,其他div里的<p>标签
    $(this).parent().children('div').not(this).find('p');
    

简单来说,.siblings()能直接拿到当前元素的所有兄弟节点,配合.find()就能轻松定位到兄弟元素的子元素啦。

2. 鼠标悬停div时为其余div添加abc类

这个需求可以通过jQuery的hover()事件配合.siblings()方法快速实现,以下是完整可运行的代码示例:

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<style>
  .abc { color: Red; }
</style>
<div>
  <h2>h2</h2>
  <p>p</p>
</div>
<div>
  <h2>h2</h2>
  <p>p</p>
</div>
<div>
  <h2>h2</h2>
  <p>p</p>
</div>
<script>
  // 给所有div绑定hover事件
  $('div').hover(
    // 鼠标移入时:选中当前div的所有兄弟元素,添加abc类
    function() {
      $(this).siblings().addClass('abc');
    },
    // 鼠标移出时:移除所有兄弟元素的abc类
    function() {
      $(this).siblings().removeClass('abc');
    }
  );
</script>

思路拆解:

  • hover()方法接受两个回调函数,分别对应鼠标移入和移出的动作;
  • $(this).siblings()会精准选中当前悬停div的所有兄弟元素(也就是页面上其余的div);
  • 通过.addClass('abc')和.removeClass('abc')切换样式类,实现鼠标悬停时其余div文字变红的效果。

如果你偏好分开绑定事件,也可以用mouseenter和mouseleave替代hover(),效果完全一致:

$('div').on('mouseenter', function() {
  $(this).siblings().addClass('abc');
}).on('mouseleave', function() {
  $(this).siblings().removeClass('abc');
});

内容的提问来源于stack exchange,提问作者ashish vyas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 08:43:08