如何选择具有id的所有元素,适用于正则表达式

时间:2012-06-28 20:58:55

标签: jquery

我需要计算所有ID为'hi *'的元素。

例如,如果我们在下面有标记:

<div id="hi1"></div>
<div id="hi2"></div>

Num值必须为'2'。

在网络上我发现了这个:

var num = $('.insttip:regex(id,'+ id[0] + '*').length;

但这不起作用:( 谢谢!

4 个答案:

答案 0 :(得分:2)

jsBin demo

尝试:

var num = $('div[id^=hi]').length;

^选择器表示starts with。希望这有帮助

答案 1 :(得分:1)

如果要在不使用jQuery插件的情况下针对元素的属性测试正则表达式,可以使用.filter()执行此操作。例如:

$('div').filter(function () {
    return /^hi.*$/.test(this.id);
});

或者如果您只想要数字:

$('div').filter(function () {
    return /^hi\d+$/.test(this.id);
});

在这种情况下,您可以使用其他答案所记录的[id^="hi"]选择器。但这不是使用正则表达式的一般方法。 .filter()方法提供了比内置jQuery选择器更多的灵活性,因此它通常是一种熟悉的好方法。

答案 2 :(得分:0)

试试这个:

$('div[id^="hi"]').length;

答案 3 :(得分:0)

这个案例有一个特定的jQuery选择器:Starts with

您可以这样做:

$('div[id^="hi"]').length