Javascript 遍历具有相似ID的元素

Javascript 遍历具有相似ID的元素,javascript,jquery,Javascript,Jquery,我想在迭代过程中获得单个元素的id 示例场景: 我有一些ids,以AAA开头,以BBB结尾。中间字符可以不同: <span id="AAA-LS-BBB">hi1</span> <span id="AAA-LAS-BBB">hi2</span> <span id="AAA-LBS-BBB">hi3</span> <span id="AAA--LCS--BBB">hi4</span> 希望我的

我想在迭代过程中获得单个
元素的
id

示例场景:

我有一些
id
s,以
AAA
开头,以
BBB
结尾。中间字符可以不同:

 <span id="AAA-LS-BBB">hi1</span>
 <span id="AAA-LAS-BBB">hi2</span>
 <span id="AAA-LBS-BBB">hi3</span>
 <span id="AAA--LCS--BBB">hi4</span>
希望我的要求是明确的。 我如何在这里使用正则表达式。。要查身份证吗

试试这个:

$("span[id^='AAA']").each(function(){
  alert($(this).id);
});
.filter()
与正则表达式结合使用:

$('span[id]').filter(function () {
    return /^AAA.*BBB$/.test(this.id);
}).each(function () {
    alert(this.id);
});
或者,由于您已经在使用
.each()
,因此只要在其中添加
条件即可:

$('span[id]').each(function () {
    if (/^AAA.*BBB$/.test(this.id)) {
        alert(this.id);
    }
});

更新:看起来您还可以在同一属性上组合和选择器:

$('div[id^="AAA"][id$="BBB"]').each(function () {
    alert(this.id);
});

(参见示例:)

结合其他贡献者的建议,并使正则表达式更加具体:

//首先,至少获得以“AAA”开头的所有id
$(“div[id^='AAA'])。筛选器(函数(){
var regexp=/^A{3}(.*)B{3}$//;///regex
返回(this.id.match(regexp));
});

这将返回您需要瞄准的所有div


示例@

你说的打印是什么意思?怎么用?在哪里?嗯,我得说还不清楚。使用[jsfiddle.net](jsfiddle.net)或者用至少一些HTML更新你的帖子,并更清楚地描述你想要实现的目标。两种方法都有一个不错的答案+1这是行不通的$(这)是未定义的。您需要改用
this.id
$('div[id^="AAA"][id$="BBB"]').each(function () {
    alert(this.id);
});
// first, at least get all <div>'s with id's that start with 'AAA' $("div[id^='AAA']").filter(function(){ var regexp = /^A{3}(.*)B{3}$/; // regex return (this.id.match(regexp)); });