我有以下输入元素:
<input id="AAA_RandomString_BBB" type="text" />
<input id="AAA_RandomString_BBB_Start" type="text" />
<input id="AAA_RandomString_BBB_End" type="text" />
Run Code Online (Sandbox Code Playgroud)
AAA和BBB是常数,我将永远知道它们是什么.但是RandomString总是随机的.
我想获得AAA_RandomString_BBB的值.我不希望输入元素的值以_Start或_End结尾的ID结尾.
我尝试了以下内容:
$('[id^="AAA_"]')
Run Code Online (Sandbox Code Playgroud)
但是上面选择了所有ID为"AAA_"的输入元素
我需要一些方法来选择使用正则表达式类型语法,如:
$('[id^="AAA_(.+?)_BBB"]')
Run Code Online (Sandbox Code Playgroud)
这可能吗?如果没有,任何人都可以提出一种选择方法
Ale*_*der 123
?$("[id^=AAA_][id$=_BBB]")
Run Code Online (Sandbox Code Playgroud)
它将返回与所有指定属性过滤器匹配的所有元素:
[id^=AAA_]
匹配具有id
以AAA_
,和开头的属性的元素[id$=_BBB]
匹配id
属性以_BBB
.结尾的元素.另一种通用替代品
:regex()
选择器,.filter()
基于方法.Pra*_*man 14
$('[id^="AAA_"][id$="_BBB"]')
Run Code Online (Sandbox Code Playgroud)
您可以查找id的开头AAA
并BBB
以此结尾:
?$("[id^=AAA_][id$=_BBB]")
Run Code Online (Sandbox Code Playgroud)
工作小提琴:http://jsfiddle.net/DN9uV/
这可以这样做:
$('input').filter(function(){ return this.id.match(/^AAA_.+_BBB$/) })
Run Code Online (Sandbox Code Playgroud)
您可以使用它$('input', <context>)
来使搜索更精确.另见这里