Javascript 切换Div显示/隐藏 功能切换列表(IDS){ var CState=document.getElementById(ID); 如果(CState.style.display!=“block”){CState.style.display=“block”} else{CState.style.display=“无”;} } 迪维福先生 { 显示:无; }
正文 显示更多 附加测试Javascript 切换Div显示/隐藏 功能切换列表(IDS){ var CState=document.getElementById(ID); 如果(CState.style.display!=“block”){CState.style.display=“block”} else{CState.style.display=“无”;} } 迪维福先生 { 显示:无; },javascript,css,html,web,toggle,Javascript,Css,Html,Web,Toggle,正文 显示更多 附加测试 这很好用,但我希望当切换被扩展时,标签“显示更多”变为“隐藏”。有什么办法吗?CState.innertext=“Hide”要获得浏览器兼容性,请创建如下变量: <script type="text/javascript"> function ToggleList(IDS) { var CState = document.getElementById(IDS); if (CState.style.display !
这很好用,但我希望当切换被扩展时,标签“显示更多”变为“隐藏”。有什么办法吗?CState.innertext=“Hide”要获得浏览器兼容性,请创建如下变量:
<script type="text/javascript">
function ToggleList(IDS) {
var CState = document.getElementById(IDS);
if (CState.style.display != "block") { CState.style.display = "block"; }
else { CState.style.display = "none"; }
}
</script>
<style type="text/css">
.divInfo
{
display: none;
}
</style>
<p>Text</p>
<a onclick="ToggleList('LT3')">Show More</a>
</p>
<div id="LT3" class="divInfo">
<p>Additional Test</p>
</div>
var text = 'textContent' in document ? 'textContent' : 'innerText';
function ToggleList(anchorID, IDS) {
var CState = document.getElementById(IDS);
var anchor = document.getElementByID(anchorID);
if (CState.style.display != "block") {
CState.style.display = "block";
anchor.innerHTML = "Hide";
} else {
CState.style.display = "none";
anchor.innerHTML = "Show more";
}
}
然后像这样使用它:
<script type="text/javascript">
function ToggleList(IDS) {
var CState = document.getElementById(IDS);
if (CState.style.display != "block") { CState.style.display = "block"; }
else { CState.style.display = "none"; }
}
</script>
<style type="text/css">
.divInfo
{
display: none;
}
</style>
<p>Text</p>
<a onclick="ToggleList('LT3')">Show More</a>
</p>
<div id="LT3" class="divInfo">
<p>Additional Test</p>
</div>
var text = 'textContent' in document ? 'textContent' : 'innerText';
function ToggleList(anchorID, IDS) {
var CState = document.getElementById(IDS);
var anchor = document.getElementByID(anchorID);
if (CState.style.display != "block") {
CState.style.display = "block";
anchor.innerHTML = "Hide";
} else {
CState.style.display = "none";
anchor.innerHTML = "Show more";
}
}
但您似乎想更改
的标签,将
的引用传递给函数,然后稍微重构函数,根据可见性重新标记它:
var text = 'textContent' in document ? 'textContent' : 'innerText';
function ToggleList(anchor, IDS) {
var CState = document.getElementById(IDS);
if (CState.style.display != "block") {
CState.style.display = "block";
anchor[text] = "Hide";
} else {
CState.style.display = "none";
anchor[text] = "Show More";
}
}
修改后的HTML:
function ToggleList(anchor,IDS) {
var CState = document.getElementById(IDS);
var isVisible = (CState.style.display == "block");
anchor.innerHTML = isVisible ? 'Show more' : 'Hide';
CState.style.display = isVisible ? 'none' : 'block';
}
显示更多信息
我相信您会想在标签上添加一个id,例如:
<a onclick="ToggleList(this,'LT3')">Show More</a>
当然,隐藏时将其设置回“显示更多”也是一样的。函数中的CState对象是对DIV的引用。您应该做的是给锚定标记一个ID,然后更改其中的文本
var showMoreElement = document.getElementByID('txtShowMore');
showMoreElement.innerHTML = "Hide";
您的锚定标记将如下所示:
<script type="text/javascript">
function ToggleList(IDS) {
var CState = document.getElementById(IDS);
if (CState.style.display != "block") { CState.style.display = "block"; }
else { CState.style.display = "none"; }
}
</script>
<style type="text/css">
.divInfo
{
display: none;
}
</style>
<p>Text</p>
<a onclick="ToggleList('LT3')">Show More</a>
</p>
<div id="LT3" class="divInfo">
<p>Additional Test</p>
</div>
var text = 'textContent' in document ? 'textContent' : 'innerText';
function ToggleList(anchorID, IDS) {
var CState = document.getElementById(IDS);
var anchor = document.getElementByID(anchorID);
if (CState.style.display != "block") {
CState.style.display = "block";
anchor.innerHTML = "Hide";
} else {
CState.style.display = "none";
anchor.innerHTML = "Show more";
}
}
显示更多信息
innerText
不能在所有浏览器上运行,也不能在textContent
上运行,但您可以同时使用这两种浏览器,或者使用innerHTML
可以在所有浏览器上运行,但这会稍微增加一些负担。