【问题标题】:TypeError: $(...).style is undefined - bug or my fault?TypeError: $(...).style is undefined - bug 还是我的错?
【发布时间】:2014-07-13 23:26:06
【问题描述】:

首先大家好..我只是想为朋友做一个简单的网站,我想添加一些效果..但是天啊..首先我只想改变一个元素的背景,但后来遇到了:

TypeError: $(...).style 未定义(在 Firefox 控制台中)

HTML:

<!DOCTYPE html>
<html lang="DE">
<head>
 <meta charset="utf-8"/>
 <title>Laura Sack - Offizielle Webseite</title>
</head>
<body>
 <div id="gallery-container" class="gallery-container cf"></div>
 <script src="js/jquery.js"></script>
 <script src="js/main.js"></script>
</body>
</html>

Javascript:

$(document).ready(function(){
   $("#gallery-container").style.background = "black";
});

【问题讨论】:

  • 这是你的错,style 是纯 JS 元素对象的属性,而不是 jQuery 对象,请尝试使用 $("#gallery-container")[0].style。但是,您应该使用 .css jQuery 方法并忘记 style 属性。
  • 哇,非常感谢! .. :)
  • $("#gallery-container") 是一个 jQuery 对象,您正在尝试使用脚本设置 dom 节点的样式,或者将其转换为包含 [0] 的 dom 节点,如 $("#gallery-container")[0] 或建议使用jQuery 的 .css() 方法来设置它的样式。
  • 感谢您的提问!作为后端编码人员,我刚刚复制了一个函数 toggle() 来显示/隐藏 DOM 对象,结果发现只有 [0] 丢失了。 dustindiaz.com/seven-togglers 在“切换多个对象”下

标签: javascript jquery css firefox


【解决方案1】:

试试这个,

$(document).ready(function(){
   $("#gallery-container").css('background-color','black');
});

【讨论】:

    【解决方案2】:

    这是正确的 jQuery 方法:

    $(document).ready(function(){
       $("#gallery-container").css('background-color','black');
    });
    

    【讨论】:

      【解决方案3】:

      您正在将 javascript 与 jquery 混合使用。

      在 jquery 中,您必须使用 css() 使其像这样工作:

       $("#gallery-container").css("background","black");
      

      【讨论】:

        【解决方案4】:

        你需要通过以下方式存在:

        $(document).ready(function(){
           let g = $("#gallery-container");
           if(typeof g !== undefined) g.css('background','black');
        });
        

        【讨论】:

          猜你喜欢
          • 2016-04-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-07-01
          • 2021-11-24
          • 2021-07-04
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多