0

#step2 和 #step2h 的 css 是可见性的:hidden 这是我当前的脚本,但我不仅想显示#step,而且还想用 JavaScript 一键显示#step2h。

<body>
<center>
<div id="header"></div>
<div id="wrapper">
<div id="content">
<div id="contenth">
<h1 id=>content header</h1>
</div>
content
<a href="#" onclick="changeDiv(1)">Menu 1</a> ///change to other div
<a href="#" onclick="changeDiv(2)">Menu 2</a>
<script>
function changeDiv(i){
if(i==1)
document.getElementById("content").innerHTML = document.getElementById("step2").innerHTML;
else
document.getElementById("step2").innerHTML = document.getElementById("content").innerHTML;
}
</script>
</div>
</div>
<div id="step2"> // Showed on click
<div id="step2h">//want to show this as well
<h1>STEP 2 Header</h1>
</div>
<h2>Step 2 Content</h2>

</div>
</center>
</body>
4

1 回答 1

2

通常你会做这样的事情:

document.getElementById("step2h").style.visibility='visible';

您可能面临的问题是替换 step2 的 HTML 正在消除 step2h,因为它位于 step2 内部,因此是 step2 的 innerHTML 的一部分。

我将为 step2 内容创建一个 step2c div,并将其放在 step2h 之下。然后将其内容替换为内容的内容,您不会在此过程中丢失step2h。像这样的东西:

<div id="step2">
    <div id="step2h">
        <h1>STEP 2 Header</h1>
    </div>
    <div id="step2c">
        <h2>Step 2 Content</h2>
    </div>
</div>

然后这样做:

document.getElementById("step2c").innerHTML = document.getElementById("content").innerHTML;
于 2012-12-16T08:56:32.037 回答