javascript - 更改表格行的背景颜色

标签 javascript html css

我需要根据select中选择的颜色来设置表格行的背景颜色。

我有一些困难,所以我需要帮助。

当我从一个选择中选择颜色时,颜色会应用到每一行,这不是我想要的。 我希望颜色应用于选择颜色的特定行

有人可以帮帮我吗?

HTML:

<table id="color-table">
  <tr>
    <td>First name</td>
    <td>Last name</td>
    <td>Address</td>
    <td>
      <select>
        <option value="red">Red</option>
        <option value="yellow">yellow</option>
        <option value="green">green</option>
      </select>
    </td>
  </tr>
  <br />
  <tr>
    <td>First name</td>
    <td>Last name</td>
    <td>Address</td>
    <td>
      <select>
        <option value="red">Red</option>
        <option value="yellow">yellow</option>
        <option value="green">green</option>
      </select>
    </td>
  </tr>
</table>

CSS:

.红色{

  background: #ff3333;
}

.yellow{
  background: #ffff80;
}

.green{
  background: #80ff80;
}

JS:

$("select").on('change', function() {
        var sel = $("select").val();
        if (sel =='red')
        {
            $(this).addClass("red");
        } 
        else if (sel == 'yellow')
        {
            $(this).addClass("yellow");
        } 
        else if (sel == 'green')
        {
            $(this).addClass("green");
        }
     });

     $('select').change(function () {
        $('#color-table').removeClass('red yellow green').addClass(
            $(this).find('option:selected').text().toLowerCase()
        );
    })
    .change();

fiddle 在这里:https://jsfiddle.net/lzrnic/9j2cg1qw/

最佳答案

您可以简单地使用选择的值作为类名。

顺便说一句,

removeClass() 不带参数将删除所有类。

$("select").on('change', function() {
  $(this).closest('tr').removeClass().addClass($(this).val());
}).trigger('change');
.red{
  background: #ff3333;
}

.yellow{
  background: #ffff80;
}

.green{
  background: #80ff80;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="color-table">
  <tr>
    <td>First name</td>
    <td>Last name</td>
    <td>Address</td>
    <td>
      <select>
        <option value="red">Red</option>
        <option value="yellow">yellow</option>
        <option value="green">green</option>
      </select>
    </td>
  </tr>
  <br />
  <tr>
    <td>First name</td>
    <td>Last name</td>
    <td>Address</td>
    <td>
      <select>
        <option value="red">Red</option>
        <option value="yellow">yellow</option>
        <option value="green">green</option>
      </select>
    </td>
  </tr>
</table>

关于javascript - 更改表格行的背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50162218/

相关文章:

javascript - 尝试编写一个 for 循环来按此顺序警告每个项目,而不为每个项目编写alert()?

python - 使用 Bottle for Python 解码 HTML 实体

php - 密码安全;这样安全吗?

html - 调整窗口大小时停止图像抖动

css - 是否可以使用很多图像切片来实现 `background-size: cover` 的效果?

javascript - 循环遍历数组中的对象并向每个对象添加属性

javascript - 谷歌地图渲染不正确,无法用已经给出的答案解决这个问题

javascript - 单击后禁用单选按钮

html - Flexbox 在左边做两个 div,在右边做第三个

html - CSS:使用悬停显示 div