使用没有嵌入JS或CSS的严格javascript隐藏和显示DIV

使用没有嵌入JS或CSS的严格javascript隐藏和显示DIV,javascript,html,Javascript,Html,我已经搜索了这么多以前回答过的问题,令我惊讶的是,没有一个回答了我想要实现的目标。使用JQuery这很容易,但我正在努力使用严格的javascript 我不能在html中嵌入任何JS或CSS 这就是我到目前为止所做的: function showhide() { var billingaddress = document.getElementById("billingaddress"); if (billingaddress.style.display === "block")

我已经搜索了这么多以前回答过的问题,令我惊讶的是,没有一个回答了我想要实现的目标。使用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默认为空,您可以在if中轻松检查它,而无需进行比较

函数showhide(){
if(billingaddress.style.display)billingaddress.style.display=“”
else billingaddress.style.display='none';
}
var billingaddress=document.getElementById(“billingaddress”)
var billingcheckbox=document.getElementById(“账单”)
billingcheckbox.addEventListener('change',showhide)
billingcheckbox.checked=true
showhide()
隐藏
Lorem Ipsum
它非常简单:

事件处理程序中的此关键字引用checkbox元素,因此您可以使用此.checked属性获取复选框状态


var billingAddress=document.getElementById(“billingAddress”);
var billingCheckbox=document.getElementById(“账单”);
billingCheckbox.addEventListener('click',函数(事件){
billingAddress.style.display=this.checked?“块”:“无”;
})

下面的代码应该可以做到这一点——但要确保您的所有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);
    }
}

“使用CSS默认隐藏”-它是如何隐藏的?另外,重新查询
账单地址是一种浪费。而是将其作为参数传递给
showhide
。使用css#billingaddress{display:none;}那么问题出在哪里?除了你的
init
函数缺少一个右大括号外,我还有一些代码没有包含在下面,因为这很好,而且很有效。。。单击复选框时,我的div不会显示或隐藏。它总是隐藏着。。。没有什么变化。。所有其他函数都在js文件中工作有没有理由不使用
addEventListener
?但是没有使用onchange=“showhide()”嵌入Javascript?我将尝试使用addEventListener。。。看看我是怎么做的go@Jonathan对不起,我有点急于发布这个答案。我发了一封信update@arcs伙计,你是一个传奇。我所做的就是设置billingcheckbox.checked=false。因为这是我想要的默认值。但现在它就像一个符咒。你这个传奇人物!我试过了。对不起,伙计,没用。我之前试过类似的东西,但也没用。上面的ARCS先生很好地解决了这个问题。啊,我认为我的解决方案缺少一个事件处理程序/监听器。很高兴你成功了!感谢您的更新:)