正确使用.is(':可见')

时间:2015-06-29 06:10:27

标签: javascript jquery

我有这段代码

<div style="height:500px;display:none"></div>
<div style="height:1000px;"></div>

<script>

$(document).ready(function() {

     var visible_elem_height = $('div').is(':visible').height()

     alert( visible_elem_height )

});

</script>

但我的代码不起作用,那你的建议是什么?

4 个答案:

答案 0 :(得分:3)

.is()返回一个布尔值,这样你的脚本就会失败,而你需要

$(document).ready(function () {

    var visible_elem_height = $('div:visible').height();
    //or var visible_elem_height = $('div').filter(':visible').height()

    alert(visible_elem_height)

})

答案 1 :(得分:1)

$('div').is(':visible')会返回true / false,具体取决于元素的可见性。另一方面,.height()函数应用于元素而不是boolean输出。因此,$('div').is(':visible').height()根本不起作用。

要实现所需的行为,请使用:visible选择器$('div:visible').height()

$(document).ready(function() {

     var visible_elem_height = $('div:visible').height()

     alert( visible_elem_height )

});

plunkr

答案 2 :(得分:1)

尝试使用.wrapper_sub

.filter()
$(document).ready(function() {
  var div = $("div").filter(function(i, el) {
    return $(el).is(":visible")
  });
  
  if (div.length > 0) {
    alert(div.height())
  };
});

答案 3 :(得分:0)

语句is(':visible')返回truefalse作为输出。如果您想获得元素的高度,可以使用.height()方法直接获取它。