Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
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 - Fatal编程技术网

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
可以在所有浏览器上运行,但这会稍微增加一些负担。