想要:中间有可变部分的 jQuery 选择器
考虑以下 HTML:
<div id="Kees_1_test">test 1</div>
<div id="Kees_12_test">test 2</div>
<div id="Kees_335_test">test 3</div>
我想要一个选择器来选择看起来像 $('div[id=Kees_{any number}_test]')
的 div。我怎样才能实现这个目标?
注意:ID 由 Asp.Net 生成。
Consider the following HTML:
<div id="Kees_1_test">test 1</div>
<div id="Kees_12_test">test 2</div>
<div id="Kees_335_test">test 3</div>
I would like a selector that selects the divs that look like $('div[id=Kees_{any number}_test]')
. How can I achieve this?
Note: the ID's are generated by Asp.Net.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
试试这个:
该选择器选择 id 以
Kees_
开头并以_test
结尾的所有元素。正如 lonesomeday 建议的那样,您可以使用 .filter() 来确保中间部分仅包含数字。您可以将
.filter()
与上面的示例结合起来:这应该是最好的了。请注意,我将
^$
添加到正则表达式中,这将在 id 上返回 false,例如Kees_123_test_foo
,但Kees_123_test
通过。Try this:
That selector selects all elements that have ids that start with
Kees_
and end with_test
.As lonesomeday suggested, you can use
.filter()
to ensure that the middle part contains only numbers. You can combine.filter()
with the example above:That should about as good as it gets. Note that I added
^$
to the regex, this will return false on id's such asKees_123_test_foo
also butKees_123_test
passes.最好的解决方案是为所有 div 提供一个类并使用类选择器:
选择器:
如果不可能,最清晰的方法是使用
filter
:\d+
表示“选择一个或多个数字”。The best solution would be to give all your divs a class and use a class selector:
Selector:
If this isn't possible, the most legible way would be to use
filter
:The
\d+
means "select one or more numbers".