2017-06-08 23 views
-2

我需要知道SELECT元素是否可見或不在DOM中。到目前爲止,我一直在使用document.getElementById('xx')。offsetParent!== null來檢查,並且它迄今爲止工作正常。如何判斷Select元素在DOM中是否可見? (在Materializecss框架中)

但是,由於我將我的HTML代碼遷移到Materializecss,因此我的可見性檢查功能不再有效。

這段代碼完全在純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,通過調用函數$(「選擇」)初始化選擇。material_select(),我的公開程度檢查功能呢不工作了。

我的問題是...我如何檢查一個SELECT元素是否可見或不在Materialise Framework中?似乎在初始化這些選擇之後,它們以某種方式釋放了一些關鍵的Javascript屬性。

我已經測試了這些鏈接中討論的所有選項,其中沒有對Materialise的工作選擇:

Check if element is visible in DOM

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

+0

['window.getComputedStyle'](https://stackoverflow.com/a/ 41698614/3757232)*將*告訴你一個元素是否可見。框架不會改變底層技術的工作方式。投票結束。 –

+0

[檢查元素是否在DOM中可見]可能的重複(https://stackoverflow.com/questions/19669786/check-if-element-is-visible-in-dom) –

+0

不,不是一個重複的問題。我的問題特別針對Materializedcss。純粹運行在純HTML上的方法似乎都不適用於物化選擇。 –

回答

0

,我發現在不同的治療選擇的解決方案來自輻射按鈕和文本的方式,

對於通過使用:window.getComputedStyle(element))來檢測可見性的選擇。display ==='none'

對於剩下的種類的元件的我檢測能見度通過使用: 「的document.getElementById(元件).offsetParent == NULL」

相關問題