jquery - 从多个 li 中选择同一个 child

标签 jquery css

我已经从 ul 和 li 列表构建了表格。我现在想切换 li“单元格”的类,但来自多个 div 的同一个子项,以便通过更改所有行内 li 的类来使 highling 的样式连续。

  1. 点击 li child 更改所有列表中同一个 li child 的类(class)
  2. 悬停 li child 在所有列表中更改同一个 li child 的类

影响在点击和悬停时突出显示“行”。

为了清楚起见,请参阅下面的基本大纲。

我的代码

$("#cell").hover(function() {
  (".cd-features-list li").addClass("cellHover");
});

$("#cell").click(function() {
  (".cd-features-list li").addClass("cellClick");
});
    .cellHover {
  background: #888;
  ) .cellClick {
    background: #111;
    )
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="cd-products-table">
  <div class="features">
    <div class="top-info">Models</div>
    <ul class="cd-features-list">
      <li>Programme Type</li>
      <li>Completion speed</li>
      <li>Visa Coverage</li>
      <li>Investment Type</li>
      <li>Min. Investment</li>
      <li>Family included</li>
      <li>Family entitlements</li>
      <li>PR time frame</li>
      <li>Citizenship time frame</li>
      <li>Annual min. stay</li>
    </ul>
  </div>
  <!-- .features -->

  <div class="cd-products-wrapper">
    <ul class="cd-products-columns">
      <li class="product">
        <div class="top-info">
          <img src="/images/flags/portugal-flag.svg" alt="product image" height="100" width="230">
          <h3>Portugal</h3>
          <br>
          <div class="check"></div>

        </div>
        <!-- .top-info -->

        <ul class="cd-features-list">
          <li>xxxxxxx</li>
          <li class="rate"><span>5/5</span></li>
          <li>xxxxxxx</li>
          <li>xxxxxxx</li>
          <li>xxxxxxx</li>
          <li>xxxxxxx</li>
          <li>xxxxxxx</li>
          <li>xxxxxxx</li>
          <li>xxxxxxx</li>
          <li>xxxxxxx</li>
          <li>xxxxxxx</li>
        </ul>
      </li>
      <!-- .product -->

      <li class="product">
        <div class="top-info">
          <img src="/images/flags/british-flag.svg" alt="product image" height="100" width="230">
          <h3>United Kingdom</h3>
          <br>
          <div class="check"></div>

        </div>
        <!-- .top-info -->

        <ul class="cd-features-list">
          <li>xxxxxxx</li>
          <li class="rate"><span>5/5</span></li>
          <li>xxxxxxx</li>
          <li>xxxxxxx</li>
          <li>xxxxxxxs</li>
          <li>xxxxxxx</li>
          <li>xxxxxxx</li>
          <li>xxxxxxx</li>
          <li>1 xxxxxxx</li>
          <li>3 xxxxxxx</li>
          <li>1 xxxxxxx</li>
        </ul>
      </li>
      <!-- .product -->

      <li class="product">
        <div class="top-info">
          <img src="/images/flags/cypriot-flag.svg" alt="product image" height="100" width="230">
          <h3>Cyprus</h3>
          <br>
          <div class="check"></div>

        </div>
        <!-- .top-info -->

        <ul class="cd-features-list">
          <li>xxxxxxx</li>
          <li class="rate"><span>5/5</span></li>
          <li>xxxxxxx</li>
          <li>xxxxxxx</li>
          <li> xxxxxxx</li>
          <li>xxxxxxx</li>
          <li>xxxxxxx</li>
          <li>xxxxxxx</li>
          <li>1 xxxxxxx</li>
          <li>3 xxxxxxx</li>
          <li>1 xxxxxxx</li>
        </ul>
      </li>
      <!-- .product -->

最佳答案

在这里使用这个jsfiddle

$( ".cd-features-list > li" ).hover(
  function() { 
  var u=$(this).parent('ul');
   $(u).addClass("cellHover");
  }, function() {
   var u=$(this).parent('ul');
   $(u).removeClass("cellHover");
   
  }
);

$( ".cd-features-list li" ).click(function() { 
 var u=$(this).parent('ul');
   $(u).addClass("cellClick");
  }
);
 .cellHover {
  background-color: #666666;
  }
  .cellClick {
    background: #111;
    }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="cd-products-table">
  <div class="features">
    <div class="top-info">Models</div>
    <ul class="cd-features-list">
      <li>Programme Type</li>
      <li>Completion speed</li>
      <li>Visa Coverage</li>
      <li>Investment Type</li>
      <li>Min. Investment</li>
      <li>Family included</li>
      <li>Family entitlements</li>
      <li>PR time frame</li>
      <li>Citizenship time frame</li>
      <li>Annual min. stay</li>
    </ul>
  </div>
  <!-- .features -->

  <div class="cd-products-wrapper">
    <ul class="cd-products-columns">
      <li class="product">
        <div class="top-info">
          <img src="/images/flags/portugal-flag.svg" alt="product image" height="100" width="230">
          <h3>Portugal</h3>
          <br>
          <div class="check"></div>

        </div>
        <!-- .top-info -->

        <ul class="cd-features-list">
          <li>xxxxxxx</li>
          <li class="rate"><span>5/5</span></li>
          <li>xxxxxxx</li>
          <li>xxxxxxx</li>
          <li>xxxxxxx</li>
          <li>xxxxxxx</li>
          <li>xxxxxxx</li>
          <li>xxxxxxx</li>
          <li>xxxxxxx</li>
          <li>xxxxxxx</li>
          <li>xxxxxxx</li>
        </ul>
      </li>
      <!-- .product -->

      <li class="product">
        <div class="top-info">
          <img src="/images/flags/british-flag.svg" alt="product image" height="100" width="230">
          <h3>United Kingdom</h3>
          <br>
          <div class="check"></div>

        </div>
        <!-- .top-info -->

        <ul class="cd-features-list">
          <li>xxxxxxx</li>
          <li class="rate"><span>5/5</span></li>
          <li>xxxxxxx</li>
          <li>xxxxxxx</li>
          <li>xxxxxxxs</li>
          <li>xxxxxxx</li>
          <li>xxxxxxx</li>
          <li>xxxxxxx</li>
          <li>1 xxxxxxx</li>
          <li>3 xxxxxxx</li>
          <li>1 xxxxxxx</li>
        </ul>
      </li>
      <!-- .product -->

      <li class="product">
        <div class="top-info">
          <img src="/images/flags/cypriot-flag.svg" alt="product image" height="100" width="230">
          <h3>Cyprus</h3>
          <br>
          <div class="check"></div>

        </div>
        <!-- .top-info -->

        <ul class="cd-features-list">
          <li>xxxxxxx</li>
          <li class="rate"><span>5/5</span></li>
          <li>xxxxxxx</li>
          <li>xxxxxxx</li>
          <li> xxxxxxx</li>
          <li>xxxxxxx</li>
          <li>xxxxxxx</li>
          <li>xxxxxxx</li>
          <li>1 xxxxxxx</li>
          <li>3 xxxxxxx</li>
          <li>1 xxxxxxx</li>
        </ul>
      </li>

关于jquery - 从多个 li 中选择同一个 child ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53136808/

相关文章:

javascript - .on() 方法子选择器不工作

css - 带有相关链接的全宽子菜单

html - twitter bootstrap 3.0 rc1 不在某些列之间使用装订线

css - 使 Bootstrap 列表看起来像多选

javascript - 我们可以为不同的移动浏览器使用不同的 CSS 吗?

php - WordPress 菜单帖子特色图片

javascript - 如何防止 popover div 在 twitter bootstrap "dismissible popover"(数据触发 ="focus")中点击时隐藏?

jquery - 对所需的智能感知和 js 文件感到困惑

javascript - 使用复选框正确显示用户编辑表单(CRUD 模型)

html - 元素 :last-child effects all the element and not only last