【问题标题】:How to get index of current element taking into account only visible elements?如何仅考虑可见元素获取当前元素的索引?
【发布时间】:2016-09-20 00:00:42
【问题描述】:

我正在使用 jQuery 创建简单的投资组合并显示带有 next before 选项的视图灯箱。

当用户点击某个项目时,我需要获取项目的索引,但只考虑可见元素。

点击后我采取

$(this).parents("li").filter(":visible").index();

但计算隐藏元素。

我怎样才能让索引只计算可见元素?

【问题讨论】:

    标签: javascript jquery html css


    【解决方案1】:

    你可以这样使用,

      var parents = $(this).closest(".portfolio-items").find("li:visible");
      var parent = $(this).closest("li");
      alert(parents.index(parent));
    

    这将根据元素集返回传递项的索引。

    Fiddle

    【讨论】:

    • 感谢您的快速回答。我进行了测试,但结果是 -1。
    • 你也可以添加html吗?
    • 查看此更新 jsfiddle.net/k4d6zpay/3 。如果您隐藏了一个元素,则显示索引,例如元素是否可见。
    【解决方案2】:

    我发现了类似的问题

    Using jQuery to select items that have style "visibility:visible" or "visibility:hidden" NOT "display: none"

    var projectIndex = $("#grid li").filter(function() {
                return !($(this).css('visibility') == 'hidden' || $(this).css('display') == 'none');
            }).index(item) + 1;
    

    item 是保存被点击元素的变量。

    我希望这对某人有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-10-15
      • 2022-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-12
      • 1970-01-01
      • 2023-03-16
      相关资源
      最近更新 更多