如何获取可见div的id

时间:2014-03-16 04:26:15

标签: jquery

我有很多div,其中一些是可见的;我想获得可见的ID:

以下代码始终返回第一个div;那是为什么?

   alert($("div.my_div:visible").attr("id"));

Jsfiddle

2 个答案:

答案 0 :(得分:1)

您正在使用visibility:hidden css propery作为您的元素,因此:visible选择器不会将其视为display:none。所以你需要在这个上下文中做的是你必须通过检查集合中的元素是否具有属性visibility:hidden来过滤集合,然后你必须使用.map()对其id进行分组并根据您的需要使用.get().join()数组将该组作为数组生成任何分隔符。

尝试,

alert($("div.my_div")
      .filter(function(){ 
            return $(this).css('visibility') === "hidden"; 
      })
      .map(function(){ 
            return this.id; 
      }).get().join(''));

DEMO

答案 1 :(得分:1)

由于:visible无法使用CSS'可见性("Elements with visibility: hidden or opacity: 0 are considered visible, since they still consume space in the layout."),您可以使用:

$("div.my_div").each(function () {
    if ($(this).css('visibility') != 'hidden') console.log(this.id);
})

<强> jsFiddle example