javascript - 如果父类存在,则获取子 div 内容

标签 javascript jquery html css

我有一个模块,在悬停时,我希望更改右侧的内容(下面演示中蓝色 div 中的内容)。

为了实现这一点,我正在尝试做的是:

  • 如果 li.tabs 上存在类 .active then,从中获取 .content 并显示它在 .overview div 中。

但是不确定当 .overview 中存在类 .active 时我如何获取 .content

我有以下标记(简化):

// 1. Check if li has class active
if ($('li.tabs').hasClass('active')) {
  // 2. get .content div from li where class .active exists

}
.tabs{
border: 1px solid yellow;
}

.list {
  border: 1px solid red;
  flex-basis: 40%;
}

.list li {
  list-style-type: none;
}

.overview {
  border: 1px solid blue;
  -ms-flex-preferred-size: 60%;
  flex-basis: 60%;
}
<script type='text/javascript' src='https://code.jquery.com/jquery-3.4.1.min.js?ver=3.4.1'></script>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">


<div class="d-flex flex-row">

  <div class="list">
    <li class="tabs active">
      <div class="header"><span>Header</span></div>
      <div class="content d-none"><p>content</p></div>
    </li>
    <li class="tabs">
      <div class="header"><span>Header 2</span></div>
      <div class="content d-none"><p>content 2</p></div>
    </li>
  </div>

  <div class="overview"> </div>

</div>

最佳答案

您的完整代码,连同事件类切换:

var overview = $('.overview');
$('.tabs').each(function(i) {
    var thisTab = $(this);
    var thisContent = thisTab.find('.content').html();
    thisTab.on('mouseenter', function(e) {
        thisTab.addClass('active');
        overview.html(thisContent);
    }).on('mouseleave', function(e) {
        thisTab.removeClass('active');
        overview.html('');
    });
});
.tabs {
    border: 1px solid yellow;
}
.tabs.active {
    background: none yellow;
}
.list {
    border: 1px solid red;
    flex-basis: 40%;
}
.list li {
    list-style-type: none;
}
.overview {
    border: 1px solid blue;
    -ms-flex-preferred-size: 60%;
    flex-basis: 60%;
}
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  <div class="d-flex flex-row">
      <div class="list">
          <li class="tabs">
              <div class="header"><span>Header</span></div>
              <div class="content d-none">
                  <p>Content 1</p>
              </div>
          </li>
          <li class="tabs">
              <div class="header"><span>Header 2</span></div>
              <div class="content d-none">
                  <p>Content 2</p>
              </div>
          </li>
      </div>
      <div class="overview"> </div>
  </div>

也在 JSFiddle

关于javascript - 如果父类存在,则获取子 div 内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57624694/

相关文章:

javascript - 在我的案例中如何连接到 elasticache?

jquery - 单击事件还会触发焦点事件,导致函数运行两次 - jQuery

php - 获取自定义格式的json数据

html - Outlook.com (Hotmail) 段落间距问题

javascript - gulp-rev with userref 重命名 index.html 文件

javascript - 需要帮助理解 onclick 以及如何从声明的变量中连续减去

javascript - 未捕获的 TypeError : window. initMap 不是函数

javascript - 如何在点击时播放声音?

html - 在 HEAD 标记之外链接样式表 (CSS)

html - 背景图片不显示