如何使用 . hide () 、.show () 或.toggle () 来切换元素的可见度 ?

如果元素可见或隐藏, 我如何测试 ?


当前回答

使用隐藏选择, 您可以匹配所有隐藏元素

$('element:hidden')

使用可见选择, 您可以匹配所有可见元素

$('element:visible')

其他回答

$('someElement').on('click', function(){ $('elementToToggle').is(':visible')
if($('#id_element').is(":visible")){
   alert('shown');
}else{
   alert('hidden');
}

a jquery 溶液, 但对于想更改按钮文字的人来说,

$( 函数 () { $( ” 显示) { $( 显示) { $( ” ) { var btn = $( 这样的) { btgle () { btn. text () { btn( $( ) ) {\\\ { display } } } }}} } () ) & lt; 上标 src=" https://ajax. googleapis. com/ jaax/ libs/jquery/ 2. 1 1/ jquery. min.js; & gt; / stamp> = & lt; = "showhhide"; & gt; = " cont"; & h2 & gt; 某些内容 & h2 & gt; & lt; what is loremipsumsum? loremipsumpsum is 简单的文本。

这是内部拼写如何解决这个问题的:

jQuery.expr.pseudos.visible = function( elem ) {
    return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );
};

如果您不使用 jquery, 你可以只是利用这个代码 并把它变成你自己的功能:

function isVisible(elem) {
    return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );
};

只要元素是可见的, 便会返回真实状态 。

expect($("#message_div").css("display")).toBe("none");