0

我一直在尝试使用 Flexslider v2 来改变一些东西以满足我的需求。我一直在尝试使用 jQuery 来定位 的父li级,img class="active"因为我想给它一个类selected但我不是很成功

<ol class="foo">
  <li>
    <img src="bar.png" class="active">  <-- This class changes img elements depending on the active slide
  </li>
  <li>
    <img src="bar.png">
  </li>
  <li>
    <img src="bar.png">
  </li>
</ol>

我想出了这样的事情:

$(document).ready(function() {
   $('.foo li').children().each(function(index, value) {
     if($(value).hasClass('active')) {
         $(this).parent('li').addClass('selected');
     } else {
         $(this).parent('li').removeClass('selected');
     }
  });
});

它在控制台中工作,但在我的 main.js 文件中没有任何作用。

4

6 回答 6

1

LIVE DEMO

像一行一样简单:

$('.foo li').find('img.active').closest('li').addClass('selected');

或者如果你真的需要它:

LIVE DEMO

$('.foo li').find('img').each(function(index, el) {
    if($(el).hasClass('active')) {
        $(el).closest('li').addClass('selected');
    } else {
        $(el).closest('li').removeClass('selected');
    }
});

jQuery API Documentation - Closest

于 2013-02-28T12:07:08.017 回答
1

像这样在 main.js 中将它包裹起来 i document.ready ,然后它应该可以按预期工作。您可以在控制台中使用它,因为在运行脚本时会加载所有元素。

$(function(){
    $('.foo li').children().each(function(index, value) {
      if($(value).hasClass('active')) {
          $(this).parent('li').addClass('selected');
      } else {
         $(this).parent('li').removeClass('selected');
      }
  });
});
于 2013-02-28T12:08:00.263 回答
0

使用最近():

$(this).closest('li'),addClass('selected');
于 2013-02-28T12:07:19.347 回答
0

添加$(document).ready(function(){

$(document).ready(function(){
$('.foo li').children().each(function(index, value) {
    if($(value).hasClass('active')) {
        $(this).parent('li').addClass('selected');
    } else {
        $(this).parent('li').removeClass('selected');
    }
});
    });

在此处检查类似的问题

于 2013-02-28T12:09:49.887 回答
0
$('.foo > li').removeClass('selected').each(function() {
    if($(this).find('img').hasClass('active')) {
        $(this).addClass('selected');
    }
});
于 2013-02-28T12:12:19.443 回答
0

为什么使用.each()?什么时候我们可以在没有它的情况下实现我们的目标。

$(".foo li img.active").parent().addClass("selected");
于 2013-02-28T12:13:02.837 回答