1

我需要计算所有具有 'hi*' 之类的 id 的元素。

例如,如果我们有以下标记:

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

数值必须为“2”。

在网上我发现了这个:

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

但这不起作用:(谢谢!

4

4 回答 4

2

jsBin 演示

尝试:

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

选择器的^意思是starts with。希望这可以帮助

于 2012-06-28T21:01:40.890 回答
1

如果您想在不使用 jQuery 插件的情况下针对元素的属性测试正则表达式,您可以使用.filter(). 例子:

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

或者,如果您只想要数字:

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

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

于 2012-06-28T21:09:24.213 回答
0

尝试这个:

$('div[id^="hi"]').length;
于 2012-06-28T21:02:08.760 回答
0

对于这种情况,有一个特定的 jQuery 选择器:Starts with

你可以这样做:

$('div[id^="hi"]').length
于 2012-06-28T21:02:40.750 回答