我正在使用Javascript / HTML中的“更多信息”脚本提供一些帮助。
当前代码:
<div id="information">
Content
<div id="more_information" style="display:none;">
More content
</div>
<a href="#" onclick="showhide('more_information');">More information</a>
</div>
使用Javascript:
function showhide(layer_ref) {
if (state == 'block') {
state = 'none';
}
else {
state = 'block';
}
if (document.all) {
eval( "document.all." + layer_ref + ".style.display = state");
}
if (document.layers) {
document.layers[layer_ref].display = state;
}
if (document.getElementById &&!document.all) {
info = document.getElementById(layer_ref);
info.style.display = state;
}
}
干杯
答案 0 :(得分:1)
JS:
function showhide(layer_ref) {
var el = document.getElementById(layer_ref);
var visible = el.style.display == 'block' // current state
el.style.display = visible ? 'none' : 'block';
return !visible; // new state (true=visible,false=invisible)
}
HTML:
<a href="#" onclick="if(showhide('more_information')){this.innerHTML='Less information'}else{this.innerHTML='More information'};return false;">More information</a>
答案 1 :(得分:0)
我建议使用jQuery,这样会更容易:
jQuery("#information a").click(function(){
jQuery(this).parent().find("#more_information").toggle();
});
答案 2 :(得分:0)
仅当您只有一个ID为“more_information”的DOM元素时才会起作用:
function showhide(nodeId) {
var node = document.getElementById(nodeId);
if (node) {
node.style.display = node.offsetWidth ? 'none' : 'block';
}
}
如果页面上的结构很少,你应该使用它:
<强> HTML:强>
<div id="information">
Content
<div id="more_information" style="display:none;">
More content
</div>
<a href="#" onclick="showhide(this); return false;">More information</a>
</div>
<强> JS:强>
function showhide(node) {
var moreNode = node.previousSibling, i = 5;
while (moreNode.nodeType != 1 && i--) {
moreNode = moreNode.previousSibling;
}
if (moreNode && moreNode.nodeType == 1) {
moreNode.style.display = moreNode.offsetWidth ? 'none' : 'block';
}
}