我有一组html元素(动态元素),其中一个元素是模板..现在我想找到页面中除模板之外的所有id
前:
<div id="text[1]"></div>
<div id="text[2]"></div>
<div id="text[XXX]"></div>
下面的Jquery函数会给我所有三个元素,但是我想要div元素的id&#39; s [1]和test [2]而不是test [XXX] ..我们怎样才能在这里使用正则表达式?
$("div[id^='test']")
答案 0 :(得分:2)
添加not()
过滤器
$("div[id^='text']").not('[id*=XXX]').css('color','red');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="text[1]">text[1]</div>
<div id="text[2]">text[2]</div>
<div id="text[XXX]">text[XXX]</div>
答案 1 :(得分:0)
您可能不需要jQuery
[].slice.call(document.querySelectorAll('div'))
.filter(el => el.id.match(/your regex here/))
.forEach(el => console.log(el.id));
&#13;
<div id="text[1]"></div>
<div id="text[2]"></div>
<div id="text[XXX]"></div>
&#13;
答案 2 :(得分:0)
这将返回您需要的所有Div。
$('div')
.filter(function() {
return this.id.match('text\\[.\\]');
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<div id="text[1]"></div>
<div id="text[2]"></div>
<div id="text[XXX]"></div>
&#13;
答案 3 :(得分:0)
感谢大家的贡献..以下代码对我有用..
$("div[id^='text']:not([id$='XXX\]'");