使用javascript隐藏div

时间:2011-05-19 12:43:08

标签: javascript sharepoint

我想使用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实现此目的。

谢谢,

4 个答案:

答案 0 :(得分:1)

使用规范化访问DOM的东西可以让您的生活变得更轻松,因此相同的代码(对于所有内容 - 表单,事件,对象属性等)适用于所有浏览器。使用JQuery只是:

$('div').hide();

隐藏所有div ...并且有大量'selectors'来优化您的选择。

答案 1 :(得分:1)

案例1
如果你想隐藏所有没有id的div,那么你必须循环所有的div并根据这个标准隐藏它们。 (找到包含.getElementsByTagName() )的div

var alldivs = document.getElementsByTagName('div');
for( var i = 0; i < alldivs.length; i++) {    
       alldivs[i].style.display = "none";
    }

案例2
如果你想根据一个类找到元素,比如你的例子.ms-globalbreadcrumb那么(找到带有.getElementsByClassName() 的类的元素)

var allbyclass = document.getElementsByClassName('ms-globalbreadcrumb');
for( var i = 0; i < allbyclass.length; i++) {    
       allbyclass[i].style.display = "none";
    }

getElementsByClassName不适用于IE的IE9之前版本

示例,两个案例都在http://jsfiddle.net/gaby/H3nNr/


<强>建议

使用jQuery允许各种各样的selectors和复杂traversing的DOM来查找您想要的内容。

  • jQuery中的案例1将是$('div:not([id])').hide();
  • jQuery中的案例2将是$('.ms-globalbreadcrumb').hide();

答案 2 :(得分:0)

如果你可以在DOM中找到div,那么你应该可以隐藏它们。例如,如果父/祖父母等div具有ID,则可以使用Javascript在DOM树中查找,直到找到要隐藏的元素为止。

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

JQuery有很多选择器可以让这种事情变得简单。

答案 3 :(得分:0)

所以您可以使用其他方法 你可以通过标记名或类来获取它们

 document.getElementsByClassName
 document.getElementsByTagName

他们返回你需要迭代的元素列表

所以你的榜样应该是

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