JQuery的通配符符号可以忽略中间的字符?

时间:2015-07-23 15:09:08

标签: jquery

我想知道如何搜索所有的html LI但只匹配ID属性。从谷歌搜索,我看到这只是开始和结束,但没有任何使用两者但忽略中间部分。

示例...

要获得以“jander”开头的所有元素,您应该使用:

$("li[id^=jander]")

以“jander”结束那些结束

$("[id$=jander]")

但是匹配的那些以“abc”开头并以“xyz”结尾呢?

$("li[id???=abc???xyz]")

,如

$("li[id???=abc???xyz]").on('click', function() { alert('foo'); });

2 个答案:

答案 0 :(得分:0)

你可以链接表达式:

$('li[id ^="abc"][id $="xyz"]')

$('li[id ^="abc"][id $="xyz"]').each(function(){
  $("ul#results").append('<li>' + $(this).text() + '</li>');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

Unit tests:
<ul>
  <li id="foo">a</li>
  <li id="bar">b</li>
  <li id="abc?????xyz">c</li>
  <li id="ab???xyz">d</li>
  <li id="abcxyz">e</li>
</ul>

Results:
<ul id="results">
</ul>

答案 1 :(得分:-1)

使用jQuery .filter()进一步过滤匹配中的元素:

$('li[id^="abc"]').filter('[id$="xyz"]').on();