使用jQuery获取可见的而不是隐藏的项目

时间:2019-05-31 08:09:08

标签: javascript jquery

我需要a将所有li元素都放入数组。 ul和li都应该 visibility: hidden display: none。这是我的代码。

var links = $("li").is(":visible").is(":hidden");
var currentLink = links.first();

alert(currentLink.text());

这是我的清单

<ul>
   <li style='display: none'>Coffee</li>
   <li style='visibility: hidden'>Tea</li>
   <li>Milk</li>
</ul> 

(我需要在提醒中显示,而不是咖啡

但是我遇到这个错误,

  

TypeError:$(...)。is(...)。is不是函数

2 个答案:

答案 0 :(得分:1)

您可以使用.css("visibility") != "hidden"

$(document).ready(function(){
    $('ul li').each(function(index, item){
        if($(item).css("visibility") != "hidden"){
          console.log($(item).text())
        }
    })
})

$(document).ready(function(){
    $('ul li').each(function(index, item){
        if($(item).css("visibility") != "hidden"){
          console.log($(item).text())
        }
    })
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul>
<li>Test visible</li>
<li style="visibility: hidden">Hidden</li>
<li>Test visible2</li>
</ul>

答案 1 :(得分:0)

通过查看答案,我设法创建了一个完美的答案。我发布此邮件是为了防止将来有人提出相同的问题。非常感谢大家的帮助。

var links = [];
$("li:not(:hidden)").each(function(index, item){
    if($(item).css("visibility") != "hidden"){
       links.push(item); 
    }
});