Javascript 如何从jquery中找到css值

Javascript 如何从jquery中找到css值,javascript,jquery,css,json,Javascript,Jquery,Css,Json,我有下面的代码,可以让我在单击红色时更改日历中事件的颜色 eventClick: function(calEvent, jsEvent, view) { $(this).css('border-color', 'red'); } 我想做的是允许用户通过简单的点击改变颜色,这样它就会从红色变为绿色,从蓝色变为黄色等等 eventClick: function(calEvent, jsEvent, view) { if red then $

我有下面的代码,可以让我在单击红色时更改日历中事件的颜色

 eventClick: function(calEvent, jsEvent, view) {
   $(this).css('border-color', 'red');
 }
我想做的是允许用户通过简单的点击改变颜色,这样它就会从红色变为绿色,从蓝色变为黄色等等

     eventClick: function(calEvent, jsEvent, view) {
       if red then 
           $(this).css('border-color', 'green');
       else if green
           $(this).css('border-color', 'blue');
        etc
 }

因此,我想“找出”当前颜色是什么,如果红色变为蓝色,如果蓝色变为绿色等等。我将只有大约5种颜色。

getter是调用setter的相同函数调用,尽管没有值:

$(this).css('border-color');

请注意,从getter返回的值可能不是您期望的值。从文件中:

请注意,元素的计算样式可能与样式表中为该元素指定的值不同。例如,尺寸的计算样式几乎总是像素,但它们可以在样式表中指定为em、ex、px或%。不同的浏览器可能返回逻辑上但文本上不相等的CSS颜色值,例如#FFF、#ffffff和rgb(255255)

出于这个原因,我建议您将颜色指定给特定的类,然后根据需要测试和交换类


@ZZZBOV在JSFIDLE上发布了一个很好的例子:

以获取元素的css属性:

var element = document.getElementById('myElementId'),
style = window.getComputedStyle(element),
color = style.getPropertyValue('color');
您将需要:

$("#id").css("border-left-color")
下面的命令将返回一个空字符串

$(this).css('border-color');
border color属性实际上设置了4个属性border top color、border right color、border bottom color和border left color,它是所有这些速记道具的组合。如果要获得边框颜色,需要指定哪一侧。
这样说:border left color$(“#id”).css(“border left color”)。这应该足够了,因为我希望每一方都有相同的颜色。

我建议将所有样式设计工作委托给CSS。与通过JS设置内联样式相比,打开和关闭类是一种更好的更改样式的方法,因为您可以在不影响JS代码的情况下更改工作方式

如果您被限制使用相同的回调,您仍然可以在类之间切换,您只需要检查click回调中的状态:

eventClick: function(calEvent, jsEvent, view) {
    var $this,
        add;
    if ($this.is('.a')) {
        add = 'b';
    } else if ($this.is('.b')) {
        add = 'c';
    } else {
        add = 'a';
    }
    $this.removeClass('a b c').addClass(add);
}

如果你使用类和委托事件,循环就会自行构建。你就是那个人!!非常感谢:)ExcellentI我在检测当前css类时遇到了问题,因为事件颜色最初没有像您的示例中那样设置。我正在使用,它设置每个事件的颜色如下:backgroundColor:“蓝色”。你试过了吗?FF不返回任何内容,而chrome返回rbgGreat谢谢,我注意到它返回rgb值,例如黄色的0,0255,我可以将其转换为例如“黄色”一词吗?是的,我已经尝试过,我知道它的功能。如果您决定采用此方法,则需要阅读有关函数的文档,以了解函数的工作方式以及如何围绕响应值工作。有一种更简单的方法(在我看来),我会用一个建议更新答案。@HarryBoy您应该使用添加类的方法,虽然我不会为一个元素绑定3个处理程序,但只需检查类red是否存在并相应地更改颜色即可