有没有办法选择带有前缀“my”和后缀“0-9”的jQuery的所有id。 像这些$(“#my $ 1-4”)还是可以循环播放?
<div id="my1"/>
<div id="my2"/>
<div id="my3"/>
<div id="my4"/>
<div id="my5"/>
答案 0 :(得分:20)
第一个想法,似乎运作良好:
$('div[id^="my"]').filter(
function(){
return this.id.match(/\d+$/);
});
以上选择div
以值id
开头的所有my
元素,然后将返回的元素过滤为id
也的元素>以数字字符结尾。
参考文献:
答案 1 :(得分:1)
使用attribute starts-with选择器可以轻松实现前缀部分:
$("div[id^=my]");
但是没有选择器允许您指定一系列字符,因此必须涉及循环。我建议filter
:
$("div").filter(function () {
return /^my\d$/.test(this.id);
});
答案 2 :(得分:1)
假设您没有数百万个以&#34; my&#34;开头的元素,您可以这样做:
$('[id^=my]').filter(function() { return this.id.matches(/\d/) && this.id.length == 3 })
这会抓取所有ID为&#34;我的&#34;,包含一个数字的元素,并且只有3个字符长(所以&#34; my54&#34;不匹配,但&#34; my6&#34; will)