jquery检查所选元素是否是每个成员的当前元素

时间:2017-03-26 14:54:00

标签: javascript jquery

我有很多选择选项列表md-is-locked-open="$mdMedia('gt-md')" ,并且在更改其中一个选项列表时,我想对其他操作应用一些操作,除了当前的操作,即触发<select>事件的活动列表。我遵循以下代码:

change

这里的问题是<select class="ops"> <option>Select</option> <option value="1">One</otption> <option value="2">Two</otption> <option value="3">Three</otption> <option value="4">Four</otption> </select> <select class="ops"> <option>Select</option> <option value="1">One</otption> <option value="2">Two</otption> <option value="3">Three</otption> <option value="4">Four</otption> </select> <select class="ops"> <option>Select</option> <option value="1">One</otption> <option value="2">Two</otption> <option value="3">Three</otption> <option value="4">Four</otption> </select> <select class="ops"> <option>Select</option> <option value="1">One</otption> <option value="2">Two</otption> <option value="3">Three</otption> <option value="4">Four</otption> </select> <script> $(document).ready(function(){ var basicObj; $("select.ops").change(function(){ basicObj = $(this); $("select.ops").each(function(){ if ($(this) !== basicObj){ // do something $(this).css('color','red'); } }) }) }) </script> 总是被评估为真,所以,例如,当第一个选择列表发生变化时,它的颜色也变为红色! this code demo

1 个答案:

答案 0 :(得分:1)

无法工作的原因:

请注意,jQuery选择器返回所选对象的Jquery集合,这意味着它们在引用相等的意义上永远不会相等。

比较Jquery对象,is()函数

  

描述:针对选择器,元素或jQuery对象检查当前匹配的元素集,如果这些元素中至少有一个与给定的参数匹配,则返回true。

要检查jquery对象是否等于你应该尝试!$(this).is(basicObj)

   <script>
      $(document).ready(function(){
      $("select").change(function(){
        var basicObj = $(this);
        $("select").each(function(sel){
          debugger;
          if (!$(this).is(basicObj)){
           // do something
           $(this).css('color','red');
          }
        })

     })
    })
    </script>

Demo

相关问题