Javascript-为属性的特定值更改对象的显示样式

Javascript-为属性的特定值更改对象的显示样式,javascript,Javascript,正如标题所说,如果某个属性具有特定值,我需要更改新对象的样式。通过定义另一个样式为的属性,我无法做到这一点,虽然我大致知道我正在查看的属性和值的特征(将是regex),但对象将在某个时候从外部json文件(尚未到达该部分)动态创建 但是,当我尝试在构造函数的display方法中使用if语句时,基于该构造函数创建的所有对象的样式都采用最后定义的样式 我正在使用的系统不支持任何类型的框架,因此jquery解决方案将不可用 代码(我简化了这个问题的代码) 功能标准手册(标题、作者、类别、coverT

正如标题所说,如果某个属性具有特定值,我需要更改新对象的样式。通过定义另一个样式为的属性,我无法做到这一点,虽然我大致知道我正在查看的属性和值的特征(将是regex),但对象将在某个时候从外部json文件(尚未到达该部分)动态创建

但是,当我尝试在构造函数的display方法中使用if语句时,基于该构造函数创建的所有对象的样式都采用最后定义的样式

我正在使用的系统不支持任何类型的框架,因此jquery解决方案将不可用

代码(我简化了这个问题的代码)

功能标准手册(标题、作者、类别、coverType){
this.title=标题| |“未知标题”;
this.author=作者| |“未知作者”;
this.category=类别| |“未知类别”;
this.coverType=coverType | |“未知封面类型”;
this.display=函数(){
如果(this.title==“哈利波特”){
msg.innerHTML+=“
  • 又一本哈利波特书”
  • ”//只是用这个例子看看这个语句是否有效 msg.style.color=“red”;//样式更改编号1 }否则{ msg.innerHTML+=“
  • ”+this.title+”-“+this.author+”、“+this.category+”、“+this.coverType+”
  • ”; msg.style.color=“black”//其他项目的样式。如果我删除它,所有项目都将是红色的。如果我将其保留在这里,所有项目都是黑色的; }; } }; var book1=新标准书(“哈利波特”、“JK罗琳”、“幻想”、“精装书”); var book2=新标准书(“指环王”、“JR托尔金”、“幻想”、“电子书”); book1.display(); book2.display()
      您正在将样式分配给ul,而不是新创建的li元素。请为li节点设置样式。很抱歉,手机上回答的输入错误。

      当然,如果您为列表本身指定颜色,则所有列表项都将具有相同的颜色。您想为特定列表项指定它。您完全正确。出于某种原因,我把这件事搞得很复杂。这真的应该是一个评论,而不是一个答案