我试图通过他们的ID隐藏元素:
document.getElementById('Table1').style.display = 'none';
但是有很多div像Table1,Table2,Table3 ......
那么如何在这种情况下使用正则表达式?
答案 0 :(得分:2)
将class设置为所有这些元素。它是为这种情况而发明的。
HTML:
<div id="Table1" class="myTables"></div>
<div id="Table2" class="myTables"></div>
<div id="Table3" class="myTables"></div>
JavaScript的:
var elements = document.getElementsByClassName("myTables");
for (var i = 0, len = elements.length; i < len; i++) {
elements[i].style.display = "none";
}
更新:如果在您的情况下设置类不适用,您始终可以使用现代方法querySelectorAll
,属性以选择器开头:
var elements = document.querySelectorAll("div[id^='Table']");
for (var i = 0, len = elements.length; i < len; i++) {
elements[i].style.display = "none";
}
答案 1 :(得分:1)
Regural表达式在此示例中不起作用。
在所有元素上使用公共类名,或者,如果无法更改HTML,则可以使用Selectors API选择需要隐藏的元素。
使用
var allElemsWithIdStartingFromTable = document.querySelectorAll('[id^="Table"]');
选择ID为“Table”的所有元素,因此它将是Table1,Table2,还有TableOfProducts,请记住这一点。
然后你需要迭代这个并检查id属性是否与/^Table\d+$/
正则表达式匹配。
答案 2 :(得分:0)
例如..如果你把myTables作为div的类名,那就是lenght ..
var elements = document.getElementsByClassName("myTables");//to know the length only..
for(var i=0;i<elements.length;i++)
{
document.getElementById('Table'+i).style.display = 'none';
}
使用循环概念......一个例子..