Javascript 从例如xx_编号中获取ID数组

Javascript 从例如xx_编号中获取ID数组,javascript,Javascript,如何检索只有一个公共前缀的ID数组 例如。 我有一张50个演员的名单,他们都有,我看起来像:aa_0000。其中“a”是前缀,“0”表示随机数。是否希望所有元素的id都以公共开头 假设它们都是div元素,这应该可以 // Just so we can stay DRY :) var prefix = 'aa_', matchElement = 'div'; // Do we have an awesome browser? if ('querySelectorAll' in docum

如何检索只有一个公共前缀的ID数组

例如。
我有一张50个演员的名单,他们都有,我看起来像:aa_0000。其中“a”是前缀,“0”表示随机数。

是否希望所有元素的
id
都以公共开头

假设它们都是
div
元素,这应该可以

// Just so we can stay DRY :)
var prefix = 'aa_',
    matchElement = 'div';

// Do we have an awesome browser?
if ('querySelectorAll' in document) {
    var matchedDivs = document.querySelectorAll(matchElement + '[id^="' + prefix + '"]');
} else {
    var allDivs = document.getElementsByTagName(matchElement),
        matchedDivs = [],
        regex = new RegExp('^' + prefix);

    for (var i = 0, allDivsLength = allDivs.length; i < allDivsLength; i++) {
       var element = allDivs[i];
       if (element.id.match(regex)) {
           matchedDivs.push(element);
       }
    }
}

console.log(matchedDivs.length); // Expect 3
//这样我们才能保持干燥:)
变量前缀='aa_u3;',
matchElement='div';
//我们有很棒的浏览器吗?
if(文档中的“querySelectorAll”){
var matchedDivs=document.querySelectorAll(matcheelement+'[id^=“'+前缀+''”]”);
}否则{
var allDivs=document.getElementsByTagName(matchElement),
matchedDivs=[],
regex=新的RegExp(“^”+前缀);
对于(变量i=0,allDivsLength=allDivs.length;i

如果要显式地将数字与数字匹配,请尝试正则表达式
/^aa\ud+$/


如果您有jQuery浮动,您可以对使用jQuery的人使用
$('div[id^=“aa_u”]”)

$('div[id^="aa_"]')

此外,您可以测试浏览器是否支持
queryselectoral
,然后使用
div[id^='aa_']
@Felix Kling这其中的乐趣在哪里P(当然,请看即将到来的编辑)。@Felix Kling请看编辑。
querySelectorAll()
的测试正常吗?在20分钟的空对象之后,我发现Firefox需要content.document…等才能正常工作。谢谢alex,querySelectorAll()工作得很有魅力:)@EpicWii不用担心,请随意给我绿色的勾号:)