使用没有嵌入JS或CSS的严格javascript隐藏和显示DIV
我已经搜索了这么多以前回答过的问题,令我惊讶的是,没有一个回答了我想要实现的目标。使用JQuery这很容易,但我正在努力使用严格的javascript 我不能在html中嵌入任何JS或CSS 这就是我到目前为止所做的:使用没有嵌入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")
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先生很好地解决了这个问题。啊,我认为我的解决方案缺少一个事件处理程序/监听器。很高兴你成功了!感谢您的更新:)