首页 > 解决方案 > 无法获取背景颜色的未定义或空引用的属性“样式”

问题描述

嗨,我收到以下代码的脚本错误。因为我尝试了所有方法但没有运气。请帮助我,因为我对这个领域很陌生。至少告诉我我哪里错了

<body onload="hightlightMoreLink(2210);hightlightMoreLink(2211);">
function hightlightMoreLink(groupID) {
  var isHightlightRequired = top.document.Main.isOtherLabelingCountriesPresent(groupID)       var moreLinkColumnElement = "";
  var moreLinkElement = "";
  if (groupID == 2210) {
    moreLinkColumnElement = document.getElementById("MoreLinkTH");        
    moreLinkElement = document.getElementById("labelingMoreLink");
  } else { 
    moreLinkColumnElement = document.getElementById("MoreLinkTHUnblind");
    moreLinkElement = document.getElementById("labelingMoreLinkUnblind");
  }
  if (isHightlightRequired) {
    moreLinkColumnElement.style.backgroundColor = "#26339f";
    moreLinkElement.style.color = "#fff";
  } else {
    moreLinkColumnElement.style.backgroundColor = "#f5f5f5";
    (getting error on this line)
    moreLinkElement.style.color = "#26339f";
  }
}

标签: javascriptjquerycss

解决方案


首先,您应该创建一个小提琴,以便人们可以更好地理解问题。

不过,检查您的代码,我认为问题出在这一行:

var isHightlightRequired = top.document.Main.isOtherLabelingCountriesPresent(groupID)

检查它是否返回布尔值。

除此之外,我认为您应该使用类来操作元素的样式。你对身体施加的负荷也不是一个好习惯。Jquery 具有用于此目的的功能。

$( document ).ready(){
    hightlightMoreLink(2210);
}

我要指出的另一件事是您可以使用 jquery 来操作元素。原样:

$("#MoreLinkTH").css("background-color", "#26339f");
$("#labelingMoreLink").css("color", "#fff");

推荐阅读