jQuery选择#id,其中word为前缀,counter为后缀
有没有办法用jQuery选择所有id的前缀为“my”和后缀“0-9”。 像这些$(“#my $ 1-4”)或者只是循环可能吗?
第一个想法,似乎运作良好:
$('div[id^="my"]').filter( function(){ return this.id.match(/\d+$/); });
JS小提琴演示 。
上面选择id
以值my
开头的所有div
元素,然后将返回的元素过滤为id
也以数字字符结尾的元素。
参考文献:
- attribute-starts-with选择器 。
-
filter()
。 - Mozilla开发者网络上的正则表达式 。
使用属性starts-with selector可以轻松实现前缀部分:
$("div[id^=my]");
但是没有选择器允许您指定一系列字符,因此必须涉及循环。 我建议filter
:
$("div").filter(function () { return /^my\d$/.test(this.id); });
假设您没有以“我的”开头的数百万个元素,您可以这样做:
$('[id^=my]').filter(function() { return this.id.matches(/\d/) && this.id.length == 3 })
这会抓取所有id为“my”的元素,包含一个数字,并且只有3个字符长(所以“my54”不匹配但“my6”会匹配)