如何使用 . hide () 、.show () 或.toggle () 来切换元素的可见度 ?
如果元素可见或隐藏, 我如何测试 ?
如何使用 . hide () 、.show () 或.toggle () 来切换元素的可见度 ?
如果元素可见或隐藏, 我如何测试 ?
当前回答
由于问题只涉及一个要素,本守则可能更适合:
// Checks CSS content for display:[none|block], ignores visibility:[true|false]
$(element).is(":visible");
// The same works with hidden
$(element).is(":hidden");
它与twern的建议相同,但适用于一个单一要素;它与jquery faq中推荐的算法相符。
我们用 jquery's is () 来检查选中元素与其它元素、 选择器或任何 jquery 对象的对比。 此方法沿 dom 元素绕行查找匹配, 满足已传递参数 。 如果匹配, 返回为真, 否则返回为假 。
其他回答
使用隐藏选择, 您可以匹配所有隐藏元素
$('element:hidden')
使用可见选择, 您可以匹配所有可见元素
$('element:visible')
expect($("#message_div").css("display")).toBe("none");
演示式链接
$( 点击“ 点击' ” ) 。 点击( 函数 ) { $( 书 ) { $( 书 ) } toggle (' slow' , 函数 () {/ // 动画完成 ) 。 提醒 ($( 书 ) . is ( : : 可以看到 ) ); / lt; - - 如果隐藏, 如果可见假 ) , 则真实 ; } ; ; & lt; 鼠标; 标 src= "https:// upload. wikimedia. org/ wikipedia/ commons/8/ 87/ chrome_ icon_ 282011. 29. png" alt=" 宽度= 300"/ & gt; https://upload. / & gt;
来源(来自我的博客):
博客加插 nplay - jquery 工具和部件: 如何使用 jquery 查看元素是否隐藏或可见 ?
您也可以使用普通的笔记本进行此项操作 :
function isRendered(domObj) {
if ((domObj.nodeType != 1) || (domObj == document.body)) {
return true;
}
if (domObj.currentStyle && domObj.currentStyle["display"] != "none" && domObj.currentStyle["visibility"] != "hidden") {
return isRendered(domObj.parentNode);
} else if (window.getComputedStyle) {
var cs = document.defaultView.getComputedStyle(domObj, null);
if (cs.getPropertyValue("display") != "none" && cs.getPropertyValue("visibility") != "hidden") {
return isRendered(domObj.parentNode);
}
}
return false;
}
注:
各地工作 , 嵌套元素为 css 工作, 内嵌样式不需要框架 。
这对我来说是有效的,我用表演和隐藏来使我的 div 隐藏/可见:
if( $(this).css('display') == 'none' ){
/* your code goes here */
} else {
/* alternate logic */
}