javascript - jQuery addClass() 到 ul :nth-child?

标签 javascript jquery addclass css-selectors

我无法使用以下代码添加Class():

    var width = $('.pane').width();
    var column_index = $('#home-container div ul.hub').index('#home-container div ul');
    var column_counter = column_index + 1;

    $('#home-container div ul:nth-child(' + column_counter + ')').next().addClass('hub');

    $('#home-container').animate({"left": -width*column_counter}, 300);

这是EXAMPLE

谢谢!

最佳答案

问题分为三部分(主要与您对 index() 的使用有关)。

首先,index()接受一个元素 $('#el') ,不是选择器 '#el' ...

其次,你是说,“获取所有 <ul class="hub"> ,然后告诉我第一个 <ul> 的索引是什么......好吧,它永远是 1。

你的意思是,获取所有 <ul>然后显示 <ul class="hub"> 的索引.

简短版本?将第二行替换为这一行...

var column_index = $('#home-container div ul').index( $('#home-container div ul.hub') );

...但是,为了使其余代码正常工作,您需要删除 class="hub"从上一个元素开始,并将其添加到当前元素。因此,将第四行替换为这些...

$('#home-container > div:nth-child(' + column_counter + ') > ul').removeClass('hub');
$('#home-container > div:nth-child(' + (column_counter+1) + ') > ul').addClass('hub');

...或者更简单,用此替换整个代码集...

var width = $('.pane').width();
var column_index = $('#home-container div ul').index( $('#home-container div ul.hub') );
var column_counter = column_index + 1;

$('#home-container > div:nth-child(' + column_counter + ') > ul').removeClass('hub');
$('#home-container > div:nth-child(' + (column_counter+1) + ') > ul').addClass('hub');

$('#home-container').animate({"left": -width*column_counter}, 300);

刚刚在您的网站上对此进行了测试,因此它应该适合您。

关于javascript - jQuery addClass() 到 ul :nth-child?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9217557/

相关文章:

javascript - 为什么我的 messaging.getToken() 在 firefox 中有效但在 chrome 中无效?

javascript - MVC3,同一个页面View之间的切换

javascript - 访问复杂的 json 数据

javascript - 鼠标悬停时的文本幻灯片

javascript - 我怎样才能找出哪些事件附加到 HTML 元素?

javascript - addClass() 不起作用

jQuery 如何将类添加到特定的 div

javascript - 在不降低图片质量的情况下减小javascript中的图像大小并下载图像

javascript - jQuery 新行\n

jquery - 优化jquery添加和删除类