Javascript -> CSS (display:none to display:block)
Javascript -> CSS (display:none to display:block)
我有3个div+3个隐藏的div。我想点击"service1"并在"toggle1"中编辑"display:block"。
HTML:
<div id="service1" onclick="changeService('toggle1')></div>
<div id="service2"></div>
<div id="service3"></div>
<br><br>
<div id="toggle1"></div>
<div id="toggle2"></div>
<div id="toggle3"></div>
CSS:
#toggle1, #toggle2, #toggle3 {display:none}
Javascript:
function changeService(this) {
this.style.display = "block";
}
希望我解释得足够好,这样你们就能理解。我做错了什么?
提前感谢:)
您将字符串传递给函数,而不是对象。您可以使用document.getElementById
方法来获得相应的div元素:
function changeService(id) {
document.getElementById(id).style.display = "block";
}
我认为最好使用CSS类。
所以:
#toggle1, #toggle2, #toggle3 {display:none}
#toggle1.active, #toggle2.active, #toggle3.active{display: block}
然后:
function changeService(id) {
document.getElementById(id).setAttribute("class", "active");
}
然后,您可以保持视图和逻辑分离,并在必要时轻松添加更多样式。尽量不要在Javascript中更改CSS。最好添加这样的类以保持清晰。
https://jsfiddle.net/t74tmu7r/2/
首先将脚本文件放在关闭的body标记之前,以确保所有DOM元素都已加载,然后使用以下代码:
function changeService(id){
var elem = document.getElementById(id);
elem.style.display = "block";
}
然后在类名为"service1"的div标记中执行以下操作:
<div id="service1" onClick="changeService('toggle1');"></div>
这应该能胜任工作。
相关文章:
- 如何在使用jQuery应用display:none后正确显示元素
- Javascript -> CSS (display:none to display:block)
- 当display:none时,getElementById()无法获取元素
- Greasemonkey:当style=“display: none;”发生变化时如何做某事
- Pre 标记似乎忽略了样式属性(例如 display:none)
- override fadeout() display: none
- jQuery - display : none not working
- 在javascript中覆盖CSS样式“display:none”
- Javascript CSS Transitions to display:none 可以解决
- 通过jQuery将DISPLAY:NONE添加到span,当:鼠标单击span外部,或单击EXIT按钮,等等+
- slideDown() 在 css 设置为 display:none 时不起作用
- 设置 style.display= none 后优雅的 javascript 重新调整
- 如何使用属性 display:none 测量类的长度
- JS监视CSS属性的变化,如“display:none”=>“display:block”
- jQuery show element with display:none !important
- 如何将“display:none”与jquery或javascript一起使用
- 为什么javascript读取具有display:none的元素
- Javascript/Jquery alternative to "display:none"?
- 设置 style
- 标记时不显示.display = none
- element.style.display='none' 不起作用