【问题标题】:Change table rows background colors更改表格行背景颜色
【发布时间】:2018-10-14 04:35:20
【问题描述】:

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

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

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

有人可以帮帮我吗?

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:

.red{

  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();

小提琴在这里:https://jsfiddle.net/lzrnic/9j2cg1qw/

【问题讨论】:

    标签: javascript html css


    【解决方案1】:

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

    顺便说一句,不带参数的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>

    【讨论】:

      【解决方案2】:

      你可以减少你所需要的一切:

      $('select').change(function() {
        $(this).closest('tr').removeClass().addClass($(this).val())
      }).change()
      

      $('select').change(function() {
        $(this).closest('tr').removeClass().addClass($(this).val())
      }).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>

      【讨论】:

        猜你喜欢
        • 2011-05-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-06-15
        相关资源
        最近更新 更多