使用javascript获取页面上所有可见的div?

使用javascript获取页面上所有可见的div?,javascript,jquery,jquery-selectors,Javascript,Jquery,Jquery Selectors,另一个简短的问题是,是否有任何简短的代码可以获取页面上可见性设置为“block”或“inline”的所有div 谢谢使用jQuery很容易 $("div:visible") 但是如果你想成为一个老派 var divs = document.getElementsByTagName("DIV"); var elems = []; for(var i = 0; i < divs.length; i++) { var div = divs[i]; var vis = div.styl

另一个简短的问题是,是否有任何简短的代码可以获取页面上可见性设置为“
block
”或“
inline
”的所有div


谢谢

使用jQuery很容易

$("div:visible")
但是如果你想成为一个老派

var divs = document.getElementsByTagName("DIV");
var elems = [];

for(var i = 0; i < divs.length; i++) {
  var div = divs[i];
  var vis = div.style.visibility;

  if(vis == 'block' || vis == 'inline')
    elems.push(div);
}
var divs=document.getElementsByTagName(“DIV”);
变量元素=[];
对于(变量i=0;i
使用jQuery:

$("div:visible")

@Camran答案已更新。我建议使用jQuery,它确实加快了开发速度,避免了麻烦。非jQuery版本存在缺陷:我认为您指的是
显示
,而不是
可见性
,并且它只有在显式设置元素样式时才起作用。如果您的文档包含一些普通(可见)元素,但没有CSS,则此函数不会返回任何元素。您需要使用IE的
currentStyle
对象和
getComputedStyle()
方法的某种组合来完成此操作。@Tim搞错了。我(准确地)回答了他的问题。阅读问题,然后阅读我的答案。Camran没有说任何关于
显示的内容,也没有说任何关于未显式设置属性的元素的内容。好啊我知道你在说什么,但那不是他问的。谢谢,祝你度过愉快的一天。如果有什么问题的话,jQuery版本是有缺陷的。这真的不值得争论,但我无法控制自己。我同意你的观点,但我认为很明显,OP要么意味着
可视性
(在这种情况下
内联
无效),要么(更有可能)意味着
显示
。此外,OP的措辞也不清楚他是指你推断出的内容(只是CSS
可见性
显式设置为两个无效值之一的元素)还是我推断出的内容(其计算CSS
显示
内联
的任何元素)。你对它的解读是准确的、字面的;我的(我会说)更自然、更可能。两个问题:首先,你是指CSS属性
可见性
(在这种情况下
内联
不是有效值)还是
显示
?其次,您是在所有div之后,其
显示
/
可见性
的计算值(即,在考虑了所有CSS规则后,div的有效值)是
内联
还是
,还是仅仅是那些显式设置了属性的div(在JavaScript中通过div的
style
属性或通过div中的style属性)?