JavaScript/CSS:更改显示属性
javascript/css: change display property
如果可能的话,我想在没有documentGetElementById的情况下更改显示,但以下内容不起作用。.html
<a href="javascript:void();" onclick="toggleFaq('1')">Instructions</a><div id="showfaq1" style="display:none;">Open Box. Remove device. </div>
JavaScript:
function toggleFaq(faqid) {
//alert(faqid);
var divname = "showfaq"+faqid;
//alert(divname);
divname.style.display="block";
}
谁能告诉我我做错了什么?
谢谢。
我不明白你为什么不想使用getElementById
,但是...
如果你有这样的元素顺序
<a href="javascript:void();" onclick="toggleFaq('1')">Instructions</a>
<div id="showfaq1" style="display:none;">Open Box. Remove device. </div>
<a href="javascript:void();" onclick="toggleFaq('2')">Instructions</a>
<div id="showfaq2" style="display:none;">Open Box. Remove device. </div>
...
<a href="javascript:void();" onclick="toggleFaq('N')">Instructions</a>
<div id="showfaqN" style="display:none;">Open Box. Remove device. </div>
您可以使用
<a href="javascript:void();" onclick="toggleFaq(this)">Instructions</a>
function toggleFaq(obj) {
obj.nextElementSibling.style.display = 'block';
}
在你的代码中,divname
是一个包含字符串"showfaq1"的变量,它没有style
属性。
要更改元素的样式,您需要对该元素的引用,您可以使用document.getElementById(divname)
获得该元素:
function toggleFaq(faqid) {
//alert(faqid);
var divname = "showfaq"+faqid;
//alert(divname);
document.getElementById(divname).style.display="block";
}
如果你对document.getElementById
过敏,你可以使用document.querySelector('[id="' + divname +'"]');
,但它的支持不如前者,而且速度较慢。
发布一个单独的答案,因为它对我以前的答案没有影响。但是你可以制作完全没有JS的基本机制,然后如果需要,使用基于JS的解决方案之一在损坏的浏览器中修复它:
.HTML
<a href="#showfaq1">Instructions</a>
<div id="showfaq1">Open Box. Remove device. </div>
.CSS
a + div { display:none; }
a:focus + div, a + div:target { display:block; }
演示
相关文章:
- 可以转换显示属性吗?如果没有,什么'这是最好的解决方案
- hasOwnProperty-即使有属性,也不会显示属性
- 如何从django表单库中隐藏复选框,并使用Javascript切换其显示属性
- 在 jsp 中显示属性文件的值,而不使用 scriptlet
- 脚本点击Css显示属性更改不正常运行Asp.net
- 如何显示属性文件中的消息
- 谷歌地图Api在CRM Dynamics 2011 iframe"不可能使用显示属性“;消息
- 如何在springMVC中以javascript显示属性文件中的值
- 使用Javascript,如何在不同的HTML页面上更改CSS显示属性
- 如何将显示属性设置为与内联!重要的
- JavaScript 函数在尝试更改显示属性时不会生效
- CSS3 过渡淡出显示属性
- CSS 显示属性不起作用
- 无法使用 javascript 更改显示属性
- 如何使用 JavaScript 更改 CSS 显示属性
- JS - 无法更改颜色,但可以更改显示属性
- Chrome I JavaScript 关于更改 CSS 中的显示属性的问题
- ng-if :隐藏/显示属性.怎么做
- JavaScript/CSS:更改显示属性
- 使用 javascript 检索显示属性