使用javascript隐藏div

使用javascript隐藏div,javascript,sharepoint,Javascript,Sharepoint,我想使用javascript隐藏没有ID的div。例如,在sharepoint中,ms globalbreadcrumb没有id frame = document.getElementById('frame1'); frame.contentWindow.document.getElementById('ctl00_PlaceHolderGlobalNavigation_PlaceHolderGlobalNavigationSiteMap_GlobalNavigationSiteMap').s

我想使用javascript隐藏没有ID的div。例如,在sharepoint
中,ms globalbreadcrumb
没有id

frame = document.getElementById('frame1'); 
frame.contentWindow.document.getElementById('ctl00_PlaceHolderGlobalNavigation_PlaceHolderGlobalNavigationSiteMap_GlobalNavigationSiteMap').style.display='none'; 
上面的代码适用于具有ID的片段,但我不确定如何为没有ID的其他div实现这一点


谢谢,

如果您可以在DOM中找到div,那么您应该能够隐藏它们。例如,如果父/祖父母etc div有一个ID,那么可以使用Javascript沿着DOM树向下搜索,直到找到要隐藏的元素

var elem = document.getElementById("topelement");
var elem2 = elem.firstChild.firstChild;
elem2.style.display = "none";

JQuery有很多选择器,可以使这类事情变得简单。

使用规范化DOM访问的东西,可以使您的生活变得更加轻松,这样相同的代码(适用于所有内容-表单、事件、对象属性等)可以在所有浏览器中工作。使用它只是:

$('div').hide();

隐藏所有div…并且有大量的div可用于优化您的选择。

案例1
如果要隐藏所有没有id的div,则必须循环所有div并基于该条件隐藏它们。(使用以下命令查找div)

(GetElementsByCassName不适用于IE9之前版本的IE)

两种情况下的示例


建议

使用它可以让各种复杂的DOM找到您想要的

  • jQuery中的情况1应该是
    $('div:not([id])).hide()
  • jQuery中的情况2是
    $('.ms globalbreadcrumb').hide()

因此,您还可以使用其他方法 您可以通过标记名或类来获取它们

 document.getElementsByClassName
 document.getElementsByTagName
它们返回需要迭代的元素列表

所以你的例子应该是

var ellements = frame.contentWindow.document
   .getElementsByClassName("ms-globalbreadcrumb");
for(i in ellements) {
  ellements[i].style.display = "none";
}

我使用jquery1.5.1 minjs,使用您提供的代码,它似乎没有隐藏它。知道为什么吗?@elmander,我在jquery示例中出错了。案例1示例将隐藏所有div,而不是那些没有
id
的div。现在我修正了它,只选择那些没有
id
@elmander的,还要确保您处理的是div,因为我们在示例中专门针对div。如果dom中的元素是
span
,则不会选择它们。
 document.getElementsByClassName
 document.getElementsByTagName
var ellements = frame.contentWindow.document
   .getElementsByClassName("ms-globalbreadcrumb");
for(i in ellements) {
  ellements[i].style.display = "none";
}