【问题标题】:Jquery toggling each and every div with same idJquery切换每个具有相同ID的div
【发布时间】:2011-01-02 06:58:15
【问题描述】:

我想切换一堆 div,每个 div 都有相同的 id。 我当前的 jquery 代码只切换一个 div。 (我尝试过混合使用 .next 和 .parent.next,但还没有找到任何东西)

$('#body'+id).toggle('400');

所以:会有多个带有“#body2010”ID 的 div。我想切换所有这些。

【问题讨论】:

    标签: jquery layout html toggle


    【解决方案1】:

    文档中不应有超过 1 个具有相同 ID 的元素 - 请改用 class 属性。

    【讨论】:

      【解决方案2】:

      重复的 ID 名称无效。您应该将它们转换为类。 jQuery 只会匹配 ID 标记的第一个匹配元素,而它会返回所有类匹配的数组。然后你会这样做:

      $('.body'+id).toggle();
      

      【讨论】:

        【解决方案3】:

        ID 应该是唯一的。 jQuery 知道这一点,因此当您搜索具有特定 ID 的元素时,jQuery 将只返回一个元素。

        来自 jQuery 文档:

        #id
        将单个元素与 给定 id 属性。

        http://docs.jquery.com/Selectors/id#id

        您应该将 body2010 id 切换为类属性。

        【讨论】:

          【解决方案4】:

          对jQuery一无所知,我相信一个ID应该是唯一的,如果你有多个具有相同ID的div,你应该使用一个类。

          【讨论】:

            【解决方案5】:

            如您所知,ID 代表“标识符”。 ID 在所有上下文中都是唯一的。

            您应该为这种类型的 DOM 查询使用类。

            【讨论】:

              【解决方案6】:

              jQuery 将只切换这些元素中的第一个,因为 ID 在页面上应该是唯一的。如果您为每个 div 分配一个类名并使用它来切换,您将获得更好的结果。

              $('.body' + id).toggle('400');
              

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多