Jquery选择不禁用的选项

时间:2012-03-21 08:16:35

标签: jquery

我的jQuery代码中有以下函数:

function checkUNSelectBox(item){ 
    $('#DELETE option').each(function(){ <!--alert(item);-->
        if ($(this).val() !=item) { 
            $(this).attr("disabled", "disabled");
            return false;   
        }
    });
}

但是,只有列表中的第一项被禁用,而不是所有其他项不等于“item”。为什么会这样?

4 个答案:

答案 0 :(得分:4)

那是因为你从函数返回false。这结束了each方法的循环。

  

“我们可以通过返回来停止回调函数内的循环   假“。

http://api.jquery.com/each/

答案 1 :(得分:2)

在功能中不需要return false,只需删除它即可。

 function checkUNSelectBox(item){ 
 {
   $('#DELETE option').each(function(){

  if($(this).val() != item)
  {
    $(this).attr('disabled','disabled');
  }   

});

只需在Demo

中查看即可

答案 2 :(得分:1)

如果找到一个不等于return false;的函数,请删除item您不想退出该函数。

我不是100%肯定,但你不想启用与项目相同的项目吗?

function checkUNSelectBox(item){ 
    $('#DELETE option').each(function(){
        this.disabled = (this.value !== item); // true / false
    });
}

将启用等于item的选项并禁用其余选项。

答案 3 :(得分:0)

我认为这是因为你的元素id,尝试将它们更改为类