使用javascript隐藏div

发布于 2024-11-09 02:55:40 字数 390 浏览 0 评论 0原文

我想使用 javascript 隐藏没有与其关联的 id 的 div。例如,在共享点 .ms-globalbreadcrumb 中没有 id。

frame = document.getElementById('frame1'); 
frame.contentWindow.document.getElementById('ctl00_PlaceHolderGlobalNavigation_PlaceHolderGlobalNavigationSiteMap_GlobalNavigationSiteMap').style.display='none'; 

上面的代码适用于有 id 的片段,但我不确定如何为其他没有 id 的 div 实现此目的。

谢谢,

I would like to hide divs that have no ids associated with them using javascript. For example, in sharepoint .ms-globalbreadcrumb doesn't have an id.

frame = document.getElementById('frame1'); 
frame.contentWindow.document.getElementById('ctl00_PlaceHolderGlobalNavigation_PlaceHolderGlobalNavigationSiteMap_GlobalNavigationSiteMap').style.display='none'; 

The above code works for pieces that have ids but I am not sure how to achieve this for other divs with no ids.

Thanks,

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

梨涡少年 2024-11-16 02:55:40

使用标准化对 DOM 的访问的东西会让您的生活变得更加轻松,以便相同的代码(对于所有内容 - 表单、事件、对象属性等)可以在所有浏览器上运行。使用 JQuery 只是:

$('div').hide();

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

You would make your life a lot easier using something that normalizes access to the DOM, so that the same code (for everything - forms, events, object properties, etc etc) works across all browsers. Using JQuery it's just:

$('div').hide();

to hide all divs...and there are a huge range of 'selectors' to refine your selection.

空心↖ 2024-11-16 02:55:40

案例一
如果您想隐藏所有没有 id 的 div,那么您必须循环所有 div 并根据该条件隐藏它们。 (使用 .getElementsByTagName()< 查找 div /a>)

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 不适用于 IE9 之前的 IE 版本

两种情况的示例位于 http://jsfiddle.net/gaby/H3nNr/


建议

使用jQuery 允许各种 选择器和复杂的遍历 DOM 找到你想要的东西想要..

  • jQuery 中的情况 1 为 $('div:not([id])').hide();
  • jQuery 中的情况 2 为 $('.ms-globalbreadcrumb ').hide();

Case 1
If you want to hide all divs with no id then you would have to loop all divs and hide them based on that criteria. (find the divs with the .getElementsByTagName())

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

Case 2
If you want to find elements based on a class, like in your example the .ms-globalbreadcrumb then (find the elements with the class with the .getElementsByClassName())

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

(the getElementsByClassName will not work for pre IE9 versions of IE)

example with both cases at http://jsfiddle.net/gaby/H3nNr/


suggestion

Use jQuery which allows for a wide variety of selectors and complex traversing of the DOM to find what you want..

  • Case 1 in jQuery would be $('div:not([id])').hide();
  • Case 2 in jQuery would be $('.ms-globalbreadcrumb').hide();
探春 2024-11-16 02:55:40

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

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

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

If you can locate the divs in the DOM, then you should be able to hide them. For example, if a parent / grandparent etc div has an ID, you can go down the DOM tree using Javascript until you have found the element you want to hide.

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

JQuery has lots of selectors for making this kind of thing easy.

鸠魁 2024-11-16 02:55:40

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

 document.getElementsByClassName
 document.getElementsByTagName

,它们返回您需要迭代的元素列表,

因此您的示例应该是

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

so theres other methods you can use
you can get them by tagname or classes

 document.getElementsByClassName
 document.getElementsByTagName

they return list of elements you need to iterate threw

so your example shud be

var ellements = frame.contentWindow.document
   .getElementsByClassName("ms-globalbreadcrumb");
for(i in ellements) {
  ellements[i].style.display = "none";
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文