Javascript 参数化jQuery addClass?

Javascript 参数化jQuery addClass?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,是否可以以某种方式参数化jQueryaddClass()方法? 比如,在调用addClass()方法时设置一个带有颜色属性的css类 我希望这是有意义的,因为我对JavaScript和CSS非常陌生。如果这很重要,我正在扩展MediaWiki VisualEditor。该方法用于立即显示/呈现编辑器中所做的更改。但是我找不到一个需要参数化的例子 如果不可能,我想知道怎么做 如果不是,也许有人可以建议如何用另一种方式实现我的愿望 编辑: 这就是当前的状态: 当我在文本中添加一些注释时,比如说一个l

是否可以以某种方式参数化jQuery
addClass()
方法? 比如,在调用
addClass()
方法时设置一个带有颜色属性的css类

我希望这是有意义的,因为我对JavaScript和CSS非常陌生。如果这很重要,我正在扩展MediaWiki VisualEditor。该方法用于立即显示/呈现编辑器中所做的更改。但是我找不到一个需要参数化的例子

如果不可能,我想知道怎么做

如果不是,也许有人可以建议如何用另一种方式实现我的愿望

编辑:

这就是当前的状态: 当我在文本中添加一些注释时,比如说一个languageAnnotation,它被称为:

this.$element
    .addClass( 've-ce-languageAnnotation' )
    .addClass( 've-ce-bidi-isolate' )
    .prop( {
        lang: this.model.getAttribute( 'lang' ),
        dir: this.model.getAttribute( 'dir' ),
        title: this.constructor.static.getDescription( this.model )
    } );
这是ve ce语言注释:

.ve-ce-languageAnnotation {
border-bottom: 1px dashed #ccc;
background-color: #ebf3f5;
}
     this.$element
    .addClass( 've-ce-textColorAnnotation' )
    .prop( {
        color: this.model.getAttribute( 'style' ),
        title: this.constructor.static.getDescription( this.model )
    } )
    ;
.ve-ce-textColorAnnotation {
    color: red;
}
这是ve ce bidi隔离:

.ve-ce-bidi-isolate {
unicode-bidi: isolate;
unicode-bidi: -moz-isolate;
unicode-bidi: -webkit-isolate;
}
我将其解释为
prop()
函数设置某种参数。这就是我为textColor注释所做的尝试:

.ve-ce-languageAnnotation {
border-bottom: 1px dashed #ccc;
background-color: #ebf3f5;
}
     this.$element
    .addClass( 've-ce-textColorAnnotation' )
    .prop( {
        color: this.model.getAttribute( 'style' ),
        title: this.constructor.static.getDescription( this.model )
    } )
    ;
.ve-ce-textColorAnnotation {
    color: red;
}
使用ve ce TextColorAnnotation:

.ve-ce-languageAnnotation {
border-bottom: 1px dashed #ccc;
background-color: #ebf3f5;
}
     this.$element
    .addClass( 've-ce-textColorAnnotation' )
    .prop( {
        color: this.model.getAttribute( 'style' ),
        title: this.constructor.static.getDescription( this.model )
    } )
    ;
.ve-ce-textColorAnnotation {
    color: red;
}
这总是产生红色。当我尝试输入其他颜色,然后是合法颜色时,什么也没有发生

Edit2:我想一个选项是为每种可能的颜色创建一个类,并根据参数添加正确的类?像这样:

var color = this.model.getAttribute('style');
if (color == 'blue') {
    this.$element.addClass( 'blueText' )
} else if (...
但这看起来不是个好主意


编辑3:,我想要的是不可能的-但是我可以直接应用属性而不使用类,通过使用这个。$element.css('attr','value')。我想我可以用它来满足我的需要。

你能用一种简单的方式做什么。假设您有一个下拉列表,从中选择颜色。在选项的“值”属性中,对于所需的每种颜色,蓝色文本表示蓝色,红色文本表示红色,依此类推

然后在代码上可以得到值。您可以看到如何获取值,然后您就可以使用CSS中的类,如redText、blueText等。 当用户单击该选项时,您将捕获事件并执行以下简单的代码:

this.$element.addClass( 'text that you got from value attribute' )

当然,您可以在添加之前删除类。

看起来您只是想设置颜色,而不是添加类。HTML中的类可以用于样式化或DOM导航,但是在您的情况下,您只需要对元素应用不同的颜色。您不需要为此使用类,尤其是在颜色是动态的情况下

您要做的是调用jquery的
.css()
方法。它可以与以下单个参数一起使用:

element.css({
  'color': 'black',
  'height': '100px'
});
如果只想编辑单个属性,则可以编辑多个属性:

element.css('color', 'black');
如果不使用jQuery,您也可以执行以下操作:

element.style.color = 'black';

你能告诉我们到目前为止你已经尝试了什么吗?你是说总是在调用addClass时添加所说的类?比如,在调用addClass()方法时设置了一个带有颜色属性的css类?这是
addClass()
.removeClass()
.toggleClass()
的主要目标。只需将一个类设置为一个状态(即开、关、高、低、显示、隐藏等…)@Gerwin我用更多信息编辑了我的问题。GMchris我想在调用addClass时总是添加一种颜色,但是颜色可能会有所不同,所以我想要像setColor(字符串颜色)这样的东西。如果这样的事情是可能的。我有5年以上的CSS和JS经验,我根本不理解这个问题,你能考虑编辑它来更好的解释吗?可能会添加一个伪示例,或者另一种语言的示例这需要我为每种颜色创建一个类,对吗?那听起来不是个好风格。不使用类就可以应用一个属性吗?我已经阅读了一些关于jQuery.attr()方法的内容,但无法使其工作(即使没有参数也不行)?然后是的,您可以使用类似于yourItem.style.color=“您的新类”的内容。或者您可以像您所说的那样尝试使用attr;)应该是
('color','black')
没错。修好了。