如何判断一个Select元素在DOM中是否可见? (在Materialisecss框架中)

时间:2017-06-08 19:59:42

标签: javascript materialize

我需要知道DOM中是否有SELECT元素可见。到目前为止,我一直在使用document.getElementById('xx')。offsetParent!== null来检查它,到目前为止它对我来说还不错。

但是,由于我将HTML代码迁移到Materialisecss,因此我的可见性检查功能不再起作用。

这段代码完全适用于纯HTML

<div class='input-field col s12'>        

    <select  name='V18' id='V18'   />
        <option value='' disabled selected>Select</option>
        <option id='V18_1'  value='1'>Choice 1</option>
        <option id='V18_2'  value='2'>Choice 2</option>
        <option id='V18_3'  value='3'>Choice 3</option>
    </select>

</div>
<script>

if
    (document.getElementById('V18').offsetParent!==null){  
        alert('Select is visible');
    }else{
        alert('Select is NOT visible');
 }

</script>

但是一旦我在Materialise css中初始化Selects,通过调用函数$('select')。material_select(),我的visibilty检查功能不再起作用了。

我的问题是......如何在Materialise Framework中检查SELECT元素是否可见?似乎在初始化选择之后,它们会以某种方式丢失一些关键的Javascript属性。

我已经测试了在这些链接上讨论的所有选项,但没有一个适用于Materialize选择:

Check if element is visible in DOM

How do I check if an element is hidden in jQuery?

1 个答案:

答案 0 :(得分:0)

我找到的解决方案是以与辐射按钮和文本不同的方式处理选择,

对于选择我通过使用以下方法检测可见性:window.getComputedStyle(element))。display ===&#39; none&#39;

对于其他类型的元素,我使用以下方法检测可见性:&#34; document.getElementById(element).offsetParent!== null&#34;