Javascript页面颜色变化

时间:2015-08-11 08:15:54

标签: javascript jquery

我有一堆代码可以使用下拉菜单更改文本的颜色

$(function() {
  $(".colorSelect").change(function() {
    $("body").attr('class', '');
    $(".colorSelect").each(function() {
      $("body").addClass($(this).val());
    });
  });
});

我知道在体型课上使用它并不是一个好主意,所以我试过这个但它没有用。

    $(function() {
  $(".colorSelect").change(function() {
    $("color").attr('class', '');
    $(".colorSelect").each(function() {
      $("color").addClass($(this).val());
    });
  });
});

然后,我在每个我想要改变的元素上放了一个课程。

任何想法我可能做错了什么?如果你不确定我在问什么,我会问我如何将它改为附加到身体上。我在预览版中有它可以添加到这个吗?

修改

我只是厌倦了使用.color的id选择器而且还没有用。不知道为什么!

萨姆

3 个答案:

答案 0 :(得分:1)

大多数答案的问题是他们错过了removeAttr('class')的副作用,即删除所有其他类,包括" color"。我建议只改变已知的类:

$(function () {
    $(".colorSelect").change(function () {
        $(".color").removeClass("red, blue").addClass($(this).val());
    });
});

JSFiddle: https://jsfiddle.net/TrueBlueAussie/qwrcxzat/2/

稍微改进的版本会触发初始选择(以避免必须在每个元素上设置初始类):

$(function () {
    $(".colorSelect").change(function () {
        $(".color").removeClass("red, blue").addClass($(this).val());
    }).trigger('change');
});

JSFiddle: https://jsfiddle.net/TrueBlueAussie/qwrcxzat/4/

更新

如果你不想硬连接要删除的类列表,你也可以只迭代列表:

$(function () {
    $(".colorSelect").change(function () {
        $('option', this).each(function(){
            $(".color").removeClass($(this).val());
        });
        $(".color").addClass($(this).val());
    }).trigger('change');
});

JSFiddle: https://jsfiddle.net/TrueBlueAussie/qwrcxzat/6/

答案 1 :(得分:0)

你错过了'。'在jQuery选择器上。

$(function() {
  $(".colorSelect").change(function() {
    $(".color").attr('class', ''); // See selector on this line
    $(".colorSelect").each(function() {
      $(".color").addClass($(this).val());
    });
  });
});

答案 2 :(得分:0)

 <select id='dropdown'>
  <option value="blue">blue</option>
  <option value="grey">grey</option>
  <option value="red">red</option>
  <option value="green">green</option>
</select>




$("#dropdown").on("change",function(e){  
         $("body").css('color',$("#dropdown option:selected").attr("value"));
    });

在选择框的更改中,body元素的color属性将发生变化。请在document.ready wrapper

中添加javascript代码