簡體   English   中英

使用嚴格的JavaScript隱藏和顯示DIV,且沒有嵌入式JS或CSS

[英]Hide and Show DIV using strict javascript with no embedded JS or CSS

我搜索並搜索了許多以前回答過的問題,令我驚訝的是,沒有一個回答我要完成的任務。 使用JQuery,這很容易,但是我在使用嚴格的javascript。

我不能在html中嵌入任何JS或CSS ...

這是我到目前為止的內容:

function showhide()
{
    var billingaddress = document.getElementById("billingaddress");
    if (billingaddress.style.display === "block")
        {
            billingaddress.style.display = "none";
        }
    else if (billingaddress.style.display === "none")
        {
            billingaddress.style.display = "block";
        }
}

function init () 
{   
    var billingcheckbox = document.getElementById("billing");

    if (billingcheckbox.checked)
        {
            showhide();
        } 
    else 
        {
            showhide();
        } 

默認情況下,使用CSS將其隱藏。

干杯,

使用您提供的代碼,可以像這樣完成。

billingaddress.style.display默認為空,如果沒有比較,您可以輕松地檢查它。

 function showhide() { if (billingaddress.style.display) billingaddress.style.display = "" else billingaddress.style.display = 'none'; } var billingaddress = document.getElementById("billingaddress") var billingcheckbox = document.getElementById("billing") billingcheckbox.addEventListener('change', showhide) billingcheckbox.checked = true showhide() 
 <input type="checkbox" id="billing"/> Hide <div id="billingaddress">Lorem Ipsum</div> 

就這么簡單:

事件處理程序中的this關鍵字引用checkbox元素,因此您可以使用this.checked屬性獲取復選框狀態。

 <input type="checkbox" id="billing"> <input type="text" id="billingaddress" placeholder="Address" style="display:none"> <script> var billingAddress = document.getElementById("billingaddress"); var billingCheckbox = document.getElementById("billing"); billingCheckbox.addEventListener('click', function(event) { billingAddress.style.display = this.checked ? "block" : "none"; }) </script> 

下面的代碼應該執行此操作-但要確保所有ID與HTML標記中的匹配:

function showhide(show) {   

    var billingaddress = document.getElementById("billingaddress"); 

    if (show) { 

        billingaddress.style.display = "block"; 

    } else {    

        billingaddress.style.display = "none";
    }
}   

function init () {   

    var billingcheckbox = document.getElementById("billing");   

    if (billingcheckbox.checked) {  

        showhide(true); 

    } else {    

        showhide(false);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM