<div id='1'></div>
<div id='1_1'></div>
<div id='1_1_1'></div>
<div id='1_1_2'></div>
<div id='1_2'></div>
<div id='2'></div>
<div id='2_1'></div>
<div id='2_2'></div>
<div id='2_2_1'></div>
鉴于这个(伪)标签集,我希望能够获得所有“级别低于”标签。 e.g。
id=1
获取1_1
和1_2
,但不会1_1_1
等。
id=2_2
获取2_2_1
等
我尝试了div[id^=1]
,但这会返回以下所有级别
注意,这些不是嵌套标签,因此儿童不起作用:(
如何限制为id_
?
e.g。 div[id=1_1_?]
是否有单个字符通配符,或限制选择器长度的方法?
答案 0 :(得分:1)
您可以使用您提到的属性starts-with selector,然后filter结果:
var elems = $("div[id^='1']").filter(function() {
return this.id.length <= 3;
});
这是一个working example。请注意,这也会返回仅div
的{{1}},因为它是1
。您可以通过向id
语句添加另一个条件来阻止这种情况:
return
最后请注意,var elems = $("div[id^='1']").filter(function() {
return this.id.length <= 3 && this.id.length > 1;
});
值不能以数字开头,除非您使用的是HTML5文档类型。