javascript - 使用 JQuery 选择下拉值时类不会更改

标签 javascript jquery html

我想要实现的是,当用户从下拉框中选择一个值时,相应的行将根据所选选项更改为不同的颜色。

到目前为止,我的行颜色改变得很好,但如果用户改变主意并想要选择一个新选项,该行有时不会改变颜色。变化是零星的,有时颜色会再次变化,有时则不会。

简化的 HTML 表格:

<table class="table" id="myTable">
    <tbody>
    <tr>
      <td>1.</td>
      <td>
        <select name="queue" class="queue-drop">
          <option></option>
          <option class="move">Move</option>
          <option class="add">Add</option>
          <option class="change">Change</option>
          <option class="cancel">Cancel</option>
          <option class="swap">Swap</option>
        </select>
      </td>
    </tr>
    <tr>
    <td>2.</td>
      <td>
        <select name="queue" class="queue-drop">
          <option></option>
          <option class="move">Move</option>
          <option class="add">Add</option>
          <option class="change">Change</option>
          <option class="cancel">Cancel</option>
          <option class="swap">Swap</option>
        </select>
      </td>
    </tr>
    </tbody>
  </table>

JQuery:

$(document).ready(function(){
$('.queue-drop').change(function(){
  var selectedVal = $(this).find("option:selected").text();
  if (selectedVal == 'Move') {
    $(this).closest('tr').addClass("move-row")
  }
  else if (selectedVal == "Add") {
    $(this).closest('tr').addClass("add-row")
  }
  else if (selectedVal == "Cancel") {
    $(this).closest('tr').addClass("cancel-row")
  }
  else if (selectedVal == "Change") {
    $(this).closest('tr').addClass('change-row')
  }
  else if (selectedVal == "Swap") {
    $(this).closest('tr').addClass('swap-row')
  }

});

});

JS fiddle :http://jsfiddle.net/exx2q/

我对 JS 和 JQuery 有点陌生,如有帮助,我们将不胜感激。

最佳答案

您可以使用.removeClass() ,清除类然后应用新的

 $(this).closest('tr').removeClass().addClass("move-row")

DEMO

关于javascript - 使用 JQuery 选择下拉值时类不会更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21615116/

相关文章:

javascript - 如果输入字段仍然是 $pristine,如何显示焦点从输入字段移出时的错误?

javascript - 字符串相乘 - [Leetcode] 与 JavaScript

javascript - 在 Firefox 24 及更多版本中使用 javascript 关闭浏览器而不显示确认框

jquery - 使用 Angular 的 ng-repeat 正确格式化表格

javascript - 将 html 显示为文本

javascript - 在 HTML 中的特定表格单元格中显示消息对话框

javascript - 如何使用 Angularjs 在点击事件上填充 HTML div

javascript - 当处理内联 JS 时,document.ready 何时运行?

javascript - 在 jQuery Validate 中创建自定义规则

javascript - 未捕获的语法错误 : Unexpected token '