document.querySelectorAll("table[id^='Table']");
此代码选择 id 的所有表Table
。但我想选择 id 为Table2 OR Table7
(或任何其他数字)的表。如何用正则表达式做到这一点?
编辑:jQuery 不适用于我的情况。
document.querySelectorAll("table[id^='Table']");
此代码选择 id 的所有表Table
。但我想选择 id 为Table2 OR Table7
(或任何其他数字)的表。如何用正则表达式做到这一点?
编辑:jQuery 不适用于我的情况。
function getTables(tableNumbers) { // Usage: getTables([2, 7]) will return the tables with the ID 'Table2' and 'Table7'. (You can add more numbers; [2,7,3,6])
var allTables = document.querySelectorAll("table[id^='Table']");
var tablesWeWant = [];
for (var i = 0; i < allTables.length; i++) {
if (allTables[i].id.match(/Table[0-9]/)) {
tablesWeWant.push(allTables[i]);
}
}
for (var i = 0; i < tablesWeWant.length; i++) {
if (!tableNumbers.contains(tablesWeWant[i].id.substr(id.length - 1))) {
tableNumbers.splice(i, 1);
}
}
return tablesWeWant;
}
这应该返回 ID 与正则表达式匹配/Table[0-9]/
并以变量中包含的数字结尾的所有表tableNumbders
。
免责声明:我不是正则表达式专家。
编辑:
经过几次编辑,上面的代码变得有点太长了,所以我改写成这样:
function getTables(tableNumbers) {
var tablesWeWant = [];
for (var i = 0; i < tableNumbers.length; i++) {
tablesWeWant.push(document.querySelector("#Table" + tableNumbers[i]));
}
return tablesWeWant;
}
第二种方法有效:http: //jsfiddle.net/qQ7VT/1/