如果ID为“ err_msg”的div隐藏,我正在尝试做某事。但是,当元素未隐藏时,以下代码将返回true。为什么会这样呢?
<script>
$(function () {
var error_msg = $("#err_msg");
if(error_msg.filter(":hidden")){
console.log("The error message is hidden");
}
});
</script>
<body>
<div id="err_msg">Test </div>
最佳答案
像这样的任何jQuery方法都将始终返回一个对象,并且一个对象永远不会“虚假”。
如果要检查jQuery对象是否为空,请检查.length
:
if (error_msg.filter(":hidden").length) {
console.log("it's hidden");
}
该库将
.length
维护为好像对象是一个数组,因此,如果长度为零,则其中没有任何内容。如果非零,则至少有一个元素。关于javascript - 为什么(:hidden)在可见时返回true?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30448488/