关于javascript:如果元素隐藏,请执行一些操作

do something if element hidden

本问题已经有最佳答案,请猛点这里访问。

如何通过jquery检查元素是否可见或隐藏,并执行一些操作?

下面给出了我的表单相关代码,

1
2
3
4
5
6
7
<form>
First name: <input type="text" name="firstname">
Last name: <input type="text" name="lastname">
Full name: <input type="text" name="fullname">
DOB: <input type="text" name="dob">
Address: <input type="text" name="address">
</form>

当显示"名字"文本字段或"姓氏"文本字段时,我需要隐藏"全名"文本字段。


试试这个

1
2
3
if($('#testElement').is(':visible')){
   //what you want to do when is visible
}

为了你的代码

1
2
3
if($('input[name="firstname"], input[name="lastname"]').is(':visible')){
  $('input[name="fullname"]').hide();
}

参考文献

http://api.jquery.com/visible-selector/


我不知道你的问题背后的逻辑,但这个演示应该能做到这一点。演示

1
2
3
4
5
$(document).ready(function(){
if($('#firstname').is(':visible') || $('#lastname').is(':visible'))
    $('#fullname').parent().hide();

})

我添加了一些父级分隔符来隐藏文本和一次输入。如果需要,可以将文本包装在标签标记中,以便更清晰地输出。


1
2
if($('input[name="firstname"], input[name="lastname"]').is(':visible') === true)
    $('input[name="fullname"]').hide();

这应该可以用$(element).is(":visible")


你应该换一下

1
2
3
<input type="text" name="fullname">
to
<input type="hidden" name="fullname">

隐藏输入字段