如果select选项不是:disabled,则removeClass

时间:2015-12-11 11:07:52

标签: jquery

试图实现这个目标:

var selectedOption = $("select option");

if(selectedOption.is(":disabled")){
   $('#opacity').addClass('opacity');
} else if(selectedOption.is(":enabled")){
   console.log("not"); // looking to removeClass('opacity');
}

我的HTML

<select name="url" id="listUpdate">
  <option selected="" disabled="" value="">Choose</option>
  <option value="http://www.ulr1.ee">ulr1</option>
  <option value="http://www.url2.ee">ulr1</option>
  <option value="www.url3.ee">ulr1</option>
</select>

类opacity得到了很好的添加,虽然我无法删除它:当选项从:disabled选项更改时启用。有什么建议吗?

2 个答案:

答案 0 :(得分:2)

正如我可以看到这些注释,您可以通过将类名作为第一个参数传递而使用int方法,将第二个作为条件检查:

.toggleClass()
$('select').on('change', function() {
  $('#opacity').toggleClass('opacity', $(":selected", this).is(':disabled'));
}).change();
button {
  background: blue;
  color: white;
}
.opacity{opacity:0.2;}

答案 1 :(得分:1)

您需要进行简单的更改:

var selectedOption = $("select option:selected");

或者使用它:

} else if (!selectedOption.is(":disabled")) {

最后,确保您将此功能绑定到.change()的{​​{1}}事件,而不仅仅是select的就绪功能:

document