我有以下代码,并且我正在尝试检索id
不包含单词OT
的txtbox。
<input type="text" id="txtMo1">
<input type="text" id="txtOTMo1">
<input type="text" id="txtTu1">
<input type="text" id="txtOTTu1">
...
...
<input type="text" id="txtMo4">
<input type="text" id="txtOTMo4">
<input type="text" id="txtTu4">
<input type="text" id="txtOTTu4">
...
...
我尝试使用.find
,其中id
以txt
开头,但它给了我一切(显然)。如何仅检索ID以txt
开头但不包含OT
的文本框?
.find("input[id ^= 'txt']")
答案 0 :(得分:6)
不要使用选择器:使用filter
:
.find('input[id^="txt"]').filter(function() {
return -1 === this.id.indexOf('OT');
});
如果要保留该元素,则filter
的回调应返回true
,如果应删除该元素,则返回false
。在这种情况下,函数将返回true
,如果indexOf
返回-1
,则会保留该元素,这意味着OT
不存在。
答案 1 :(得分:2)
为什么不使用类代替那些特定的文本框而使用类选择器呢?
但如果你需要一个解决方案,那么它就是。
$('input[id^-"txt"]').filter(function() {
return this.id.indexOf('OT') == -1;
});
您可以像这样渲染您的标记,并使您的代码变得简单。
标记
<input type="text" id="txtMo1">
<input type="text" class="OT" id="txtOTMo1">
<input type="text" id="txtTu1">
<input type="text" class="OT"id="txtOTTu1">
的js
$('input.OT').doYourStuff();