【问题标题】:jQuery Class selector only selects first element with the classjQuery 类选择器只选择该类的第一个元素
【发布时间】:2011-09-30 00:54:13
【问题描述】:

下午。我正在努力应对这种情况。

AnythingSlider 幻灯片中有一个非常简单的选项卡式内容。选项卡在第一张幻灯片上工作正常,但是当我切换幻灯片时,选项卡将无法工作。

只有第一张幻灯片有效,如果我更改幻灯片并单击标签,我可以在 Chrome 的开发人员工具上看到第一张幻灯片的标签正在更改。

这是标签脚本。

$(document).ready(function(){
        $('.top5tabs').css("display","block");
        $('.top5tabs div').hide();
        $('.top5tabs div:first').show();
        $('.top5tabs ul li:first').addClass('active');
            $('.top5tabs  ul li a').click(function(){
            $('.top5tabs ul li').removeClass('active');
            $(this).parent().addClass('active');
            var currentTab = $(this).attr('href');
            $('.top5tabs div').hide('fast');
            $(currentTab).show('fast');
        return false;
        });
    });

这是在每张幻灯片上重复的 html。

<div class="top5tabs">

            <ul class="tabnav">

                <li><a href="#tab-1">option 1</a></li>

                <li><a href="#tab-2">option 2</a></li>

            </ul>

            <div id="tab-1" class="tabdiv">content</div>
            <div id="tab-2" class="tabdiv">content</div>
</div>

【问题讨论】:

  • 似乎在这里工作:jsfiddle.net/b62Gq 你能自己打开页面吗?
  • 它适用于 1 个元素,但是当同一页面中有多个标签时,它不会起作用
  • 见这里。 jsfiddle.net/b62Gq/1

标签: jquery jquery-plugins jquery-selectors


【解决方案1】:

您的问题是您试图对页面上的多个元素使用相同的“id”值。您不能这样做并期望某些东西起作用。

当您需要多组选项卡时,您可以切换到使用“类”值来标识要显示的 &lt;div&gt; 元素而不是“id”。

Here 是您的 fiddle 的更新,具有唯一的“id”值。

edit — 而here 是将标签控件保持在每组标签元素本地的版本。

【讨论】:

  • 谢谢!这解决了其中一个问题。但是,第二组选项卡上的内容仍然是隐藏的。它应该在加载时显示
  • 那是因为 ":first" 并不意味着“该组中的第一个”;它的意思是“与整体选择器匹配的第一个”。我会处理小提琴并在几秒钟内更新答案。
  • 我通常是这样想的:将 class=" 用于您想在几个不同的地方使用的东西,使用 id="" 用于独特的东西。
  • 非常感谢 Pointy,这完全解决了问题!我已经在这个网站上工作了几个小时,但我开始错过一些东西。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-04-06
  • 2012-12-27
  • 1970-01-01
  • 2017-11-29
  • 2011-07-29
  • 2012-01-21
  • 2010-11-01
相关资源
最近更新 更多