无法设置未定义的属性'borderColor'

时间:2018-01-09 08:59:35

标签: javascript html

我从一本书中复制这个(因为它“应该”起作用),我不能让这个功能起作用,它可能是重复的但我搜索了一个答案而且无法使它工作。

  

“未捕获的TypeError:无法设置未定义的属性'borderColor'”

它可能是一些简单的东西,但{i}我相信是我尝试将其设置为数组和对象的问题,但我真的不明白,任何解释简单的解释都会非常感激。

     var boundary = "Upload----" + DateTime.Now.Ticks.ToString();
                MultipartFormDataContent form = new MultipartFormDataContent(boundary);
                StringContent content = new StringContent(bodyJson);
                content.Headers.ContentType = MediaTypeHeaderValue.Parse("application/json");
                form.Add(content, "application/json");

                var imageContent = new ByteArrayContent(image);
                imageContent.Headers.ContentType = MediaTypeHeaderValue.Parse("image/jpeg");
                form.Add(imageContent, "image/jpeg", "image.jpg");
                var responseTask = _httpClient.PostAsync(url, form).Result;
to
function changeBorder(element, to){
    element.style.borderColor = to;
}
    
var contentDiv = document.getElementById('color');

contentDiv.onmouseover = function(){
    changeBorder('red');
};
    
contentDiv.onmouseout = function(){
    changeBorder('black');
};

我只想删除错误消息并获取执行某些功能的功能。

4 个答案:

答案 0 :(得分:3)

您需要设置 this 并更改您的功能:

contentDiv.onmouseover = function(){
    changeBorder(this, 'red');
};

contentDiv.onmouseout = function(){
    changeBorder(this, 'black');
};

如果没有关键字 this ,则无法找到它。请记住,在您的功能中,您正在分享元素

function changeBorder(element, to){
    element.style.borderColor = to;
}

答案 1 :(得分:0)

您的NumberFormatException方法需要2个参数,但您始终只使用一个参数。

试试这个:

changeBorder

此外,如果

,这可能不起作用
changeBorder(contentDiv, '[color]');

语句在DOM准备好之前执行。

答案 2 :(得分:0)

changeBorder(' red') - >方法内的var元素设置了一个字符串(' red')。字符串没有样式属性,因此element.style未定义,您不能使用未定义对象的属性(如borderColor)

答案 3 :(得分:0)

您必须稍微修改一下代码。请检查以下代码:

<html>
  <head>      
     <style>
        .box{
              border: 1px solid red;
              background-color:pink;
              padding: 10px;
            }       
        .row {
            border: 1px solid #000;
        }
     </style>
  </head>

  <body>
  <div class="row" id="color">
        <div class="element">1</div>
   </div>   
   <script type="text/javascript">    
            function changeBorder(element, to){
                element.style.borderColor = to;
            }

            var contentDiv = document.getElementById('color');
            alert(contentDiv);

            contentDiv.onmouseover = function(){
                changeBorder(contentDiv,'red');
            };

            contentDiv.onmouseout = function(){
                changeBorder(contentDiv, 'black');
            };
      </script>   
  </body>
</html>