使用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属性)?