繁体   English   中英

如何删除具有相同ID的div但在JAVascript中显示='block'和display ='none'

[英]how to remove a div with same ids but display='block' and display='none' in JAVascript

我有超过1个具有相同ID的div,但是一个有diplay ='block'而其他有display ='none'。

我想删除所有显示='none'的div。

请告诉最简单的方法。

在文档中有多个元素具有相同的ID是违反W3标准的。

请改用类名。 不幸的是,没有javascript函数来按类名获取元素。 我担心你将不得不循环遍历所有div元素(使用getelementsbytagname),然后找出必要的div。

但是,如果您使用的是jquery,则可以使用其选择器并按类名获取元素并迭代它。

$('.classname').each(function(index) {
   //check if display is none and delete it
  });

如果你想使用它,可以使用 一行 jquery代码

$("div.the_div:hidden").remove();

这将删除所有div,因为JQuery的隐式迭代是隐藏的display:none

确保在JQuery的ready方法中包含上面的代码行,一旦DOM准备好就会触发。 所以它变成:

$(function(){
    $("div.the_div:hidden").remove();
});

注意:首先给你的div是the_div的类。

任何html元素ID属性都必须是唯一的。 更多关于W3Schools.com 您应该重写您的html代码以使用类而不是ID。

对于整个文档,第一个ID应该是唯一的,文档中的重复ID是错误的做法。
关于删除具有相同样式的元素,如果你可以在CSS类中保留样式,那么最好创建两个类一个Hidden和其他Displayed然后使用jQuery从选择器中选择这些元素并删除它们,例如

$(".hidden").remove();

但如果它是内联的,你应该选择元素并循环遍历它们,看看who has style = none是否删除它。 例如:让我们说你要控制的所有元素都有统一的类而不是重复的Id,让我们说“MyDivs”
在jQuery中

    $(".MyDivs").each(
    function(){
    if($(this).css("display") == "none")
    {
    $(this).remove();
    }
}
)

希望这可以帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM