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

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


当前回答

如何确定一个混合元素的状态?


您可以使用 : 可见和: 隐藏的选择器来确定元素是否崩溃。

var isVisible = $('#myDiv').is(':visible');
var isHidden = $('#myDiv').is(':hidden');

如果您只是根据一个基于其可见度的元素行事, 您可以只包括: 可见或: 隐藏在选择表达式中。 例如 :

 $('#myDiv:visible').animate({left: '+=200px'}, 'slow');

其他回答

只需检查该元素是否可见, 并返回一个布尔。 jquery 通过在元素中添加无显示来隐藏元素, 所以如果您想要使用纯正的 javascript, 您仍然可以这样做, 例如 :

if (document.getElementById("element").style.display === 'block') {
  // Your element is visible; do whatever you'd like
}

您也可以使用jquery, 因为您的代码的其余部分似乎使用这个代码, 而您有小块代码。 类似在jquery的下面的东西, 也为您玩同样的把戏:

if ($(element).is(":visible")) {
    // Your element is visible, do whatever you'd like
};

使用 cs 方法在 jquery 中也可以产生同样的结果 :

if ($(element).css('display') === 'block') {
    // Your element is visible, do whatever you'd like
}

在检查能见度和显示情况时,您还可以做以下工作:

if ($(this).css("display") === "block" || $(this).css("visibility") === "visible") {
   // Your element is visible, do whatever you'd like
}
if($('#postcode_div').is(':visible')) {
    if($('#postcode_text').val()=='') {
        $('#spanPost').text('\u00a0');
    } else {
        $('#spanPost').text($('#postcode_text').val());
}

$( document). ready( 函数 () { 如果 (" checkme: hidden" ) {( ) 长) {主控台. log ('hidden' ) }} } ; & lt; scrip src= "https://ajax.googleapis. com/ajax/ libs/ jquery/ 2.1.1/jquery. min. js; & gt; / strip> / specie; & lt; br> spectie: salmo salal=lt; br> form: lift;/div>

您应该考虑的另一个答案是,如果您正在隐藏一个元素, 您应该使用jquery, 而不是实际上隐藏它, 而是删除整个元素, 但是您将其 html 内容和标签本身复制为 jquery 变量, 然后您需要做的就是测试屏幕上是否有这样的标签, 使用正常的 $ (“ tagname ”) 时间长度 。

但如果元素的 css 和下面一样呢?

.element{
    position: absolute;left:-9999;    
}

因此,对于堆叠溢出问题的答案是,如何检查元素是否在屏幕之外,也应当考虑。