在javascript中使用正则表达式增量数字

时间:2013-03-11 11:46:32

标签: javascript

我试图通过他们的ID隐藏元素:

document.getElementById('Table1').style.display = 'none';

但是有很多div像Table1,Table2,Table3 ......

那么如何在这种情况下使用正则表达式?

3 个答案:

答案 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";
}

DEMO: http://jsfiddle.net/L2de8/

答案 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';
        }

使用循环概念......一个例子..