按功能将AddClass添加到第n个元素

时间:2011-07-12 08:51:30

标签: javascript jquery

我们正在开发一个网站,其中我们有一个Flash元素,可以显示一些电影,以及一些其他视频的视频大拇指的HTML元素。

在观看下一个视频时,我们想要突出显示下方的拇指,并使用Flash可以调用的功能。

我在想这样的事情:(这显然不起作用)

function highlightMovie(4) {
    $(".thumb-wrapper div").removeClass("active");
    //The "4" in the below line, comes from the "4" in the Function
    $(".thumb-wrapper div:nth-child(4)").addClass("active");
}

我该怎么做?如何调用没有预定义选择器的函数,但可以选择nth-child ??

提前谢谢。

4 个答案:

答案 0 :(得分:1)

function highlightMovie(number) {
    $(".thumb-wrapper div").removeClass("active");
    //The "4" in the below line, comes from the "4" in the Function
    $(".thumb-wrapper div:nth-child("+number+")").addClass("active");
}

不确定这是不是你要问的? 什么不起作用?

答案 1 :(得分:1)

function highlightMovie(n) {
    $($(".thumb-wrapper div").removeClass("active").children()[n]).addClass("active");
}

答案 2 :(得分:0)

您可以使用ExternalInterface从Flash调用JavaScript,并引用已开始播放的视频。据推测,您的代码中可以使用某种共享ID系统,以便您轻松识别要突出显示的缩略图。

编辑:这次尝试回答这个问题......

所以你不能这样做:

function highlightMovie(index) {
    $(".thumb-wrapper div").removeClass("active");
    $(".thumb-wrapper div:nth-child("+index"+)").addClass("active"); 
}

我没有测试过,但现在可以说你在IE 8及更低版本中根本不能使用nth-child。

答案 3 :(得分:0)

我会尝试使用ExternalInterface从AS调用JS函数。

伪js:

function highlightThumb (index) {
  thumbs = getAllThumbsElem();
  for (var i=0;i<thumbs.length;++i) {
    if (i == index) {
      highlightElement(i);
    }
    else {
      resetHiglight(i);
    }
  }
}