[英]Finding only visible elements using JavaScript
我正在努力將JQuery項目覆蓋為純JavaScript,並且受困於以下代碼。
$(".element-has-class:visible")
我認為也許可以遵循這些原則來捕獲所有可見元素(對於我的項目列表項),但是我沒有運氣:
function functionName (){
var elementsOnShow = document.getElementsByClassName('element-has-class').find(isVisible);
}
function isVisible(element) {
return element.style.display === 'block';
}
(已在CSS中設置了代碼block
)。 無論如何,是否將所有可見元素都包含在一個變量中?
您可以將nodeList轉換為Array( 在此處了解更多信息 ),這將允許您使用Array.prototype.filter()
獲取可見元素:
function functionName (){
var myNodeList = document.getElementsByClassName('element-has-class'),
myArray = [].slice.call(myNodeList),
elementsOnShow = myArray.filter(isVisible);
}
function isVisible(element) {
return element.offsetWidth > 0
|| element.offsetHeight > 0
|| element.getClientRects().length > 0;
}
您在上面看到的isVisible
函數是從jQuery 2.2.4的源代碼中提取的(版本3.XX與IE 8及更低版本不兼容)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.