2017-08-30 26 views
0

假设我碰到一个有100个表格的页面:50个表格是100个宽度,50个表格是200个宽度。如果它们的宽度与某些(200)像素相同,如何隐藏所有元素(表格)?

200宽度的表是不相关的,我和我想隐藏他们与if()声明。

的问题了,他们没有选择,我需要通过它们的宽度来选择时间。这可能吗?

我想这一点,但没有奏效:

document.querySelectorAll('table').forEach((e)=> { 
    if (table.width === 300) { 
    e.style.visibility = 'hidden'; 
    } 
}); 

编辑:我最渴望的一个香草的解决方案。

回答

1

使用表元素的offsetWidth属性,也确保DOM是试图进入电影前准备:

function removeTables() { 
    document.querySelectorAll('table').forEach((e)=> { 
     if (e.offsetWidth >= 200) { 
     e.style.display = "none"; 
     } 
    }); 
} 

window.onload = function() { 
removeTables() 
}; 
+0

嗯,这个返回undefined即使页面包含明确表(表,带有TBODY,TD的,等等)。 – sangoko

+0

这很奇怪,当你登录e时控制台会说什么? – TimCodes

+0

https://codepen.io/TimCodes/pen/YxdyYG?editors=1111 – TimCodes

0

可以尝试下面的脚本。在这里,我使用jquery each()函数遍历页面中的所有表。希望能帮助到你。

$(document).ready(function(){ 
    $('table').each(function(){ 
    if($(this).width()==125){ 
     $(this).hide(); 
    } 
    }); 
}); 

请检查此fiddler作为参考。

+0

你能把它翻译成香草吗?我不知道jQuery。我会更新我正在寻找香草解决方案的问题。顺便说一句,我明白domContentLoaded是不同于'$(document).ready'所以这是一个问题,可以取代它。 – sangoko

+0

@sangoko sry老兄,我不知道香草! –