如果带有id的div有某些文本删除其他div•Javascript

时间:2017-02-13 16:55:21

标签: javascript php

您好我有几个这样的div:

<div id="404.4T:"></div>
<div id="404.4R:"></div>
<div id="404.4P:"></div>
<div id="404.4B:"></div>

我需要使用javascript只显示带字母T的div并隐藏另一个等等...我有4个按钮,每个按钮显示选择了le字母的div ... 我找到了这段代码:

function myFunction0() { 
    var divs = document.getElementsByTagName("div");
    for (var i = divs.length; i;) {
        var div = divs[--i];
        if (div.id.indexOf("P:") > -1) {
            div.parentNode.removeChild(div);
        }
    }
}

它有效,但我不能再用P显示div。 谢谢戴维德。

3 个答案:

答案 0 :(得分:1)

因为您从页面中移除了它们,所以您应该为display更改none css属性,以便隐藏它们。然后,您可以通过将css属性display更改为“再次阻止”来显示它们。

<div id="404.4T:"></div>
<div id="404.4R:"></div>
<div id="404.4P:"></div>
<div id="404.4B:"></div>
<script>
function myFunction0() {
var divs = document.getElementsByTagName("div");
for (var i = divs.length; i;) {
    var div = divs[--i];
    if (div.id.indexOf("P:") > -1) {
        div.style.display = 'none';
    }
}}
</script>

然后你可以使用

重新打开它们
div.style.display = 'block';

答案 1 :(得分:0)

您必须隐藏div而不是删除。

// This for hide
element.style.display= "none";
// This to display
element.style.display= "block";

答案 2 :(得分:0)

您正在删除页面中的元素;它们不复存在了。改变这一行:

div.parentNode.removeChild(div);

为:

// hide, but don't remove, the element
div.style.display = 'none';

然后再用它来显示div:

// show the element again
div.style.display = 'block';

或者,如果您需要元素继续占用页面上的空间但不显示,则可以尝试visibility属性。使用hidden隐藏,visible显示。