选择具有特定名称但没有某些名称的所有元素

时间:2015-11-04 08:47:23

标签: javascript jquery

如果我选择名称以

结尾的所有输入元素
$("input[name$='Phone']")..

我是如何进一步限制此选择的,因为我想选择名称以Phone结尾但没有名称为zPhonekkPhoneooo2tPhone的元素的所有输入元素。

2 个答案:

答案 0 :(得分:2)

您可以使用not selector:

$("input[name$='Phone']").not('[name$="zPhone"]').not('[name$="kkPhone"]')

但为了简单起见,我的名字会以Phone结尾,包括下划线:my_Phone, your_Phone, our_Phone, etc.,然后只使用:

$("input[name$='_Phone']")

答案 1 :(得分:0)

https://api.jquery.com/not-selector/
http://api.jquery.com/not/

$("input[name$='Phone']:not([name='megaPhone'],[name='cellPhone'])").css({border:"2px solid red"});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!-- YES -->
<input name="mobilePhone">
<input name="telePhone">
<!-- NOT -->
<input name="cellPhone">
<input name="megaPhone">

使用http://api.jquery.com/filter/和正则表达式:

$("input[name$='Phone']").filter(function(){
     return !this.name.match(/^(cell|mega)Phone$/);
}).css({border:"2px solid red"});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!-- YES -->
<input name="mobilePhone">
<input name="telePhone">
<!-- NOT -->
<input name="cellPhone">
<input name="megaPhone">

  

/ ^(细胞|兆|格言)电话$ /克
  ^断言字符串开头的位置
  第一捕获组(cell | mega | dicta)
  第一种选择:细胞
  单元格字面匹配字符单元格(区分大小写)
  第二种选择:mega
  mega匹配字符mega(区分大小写)
  第三种选择:dicta
  dicta字面匹配字符(区分大小写)
  电话字符匹配字符电话(区分大小写)
  $断言字符串末尾的位置