【问题标题】:Error while trying to set style with JavaScript尝试使用 JavaScript 设置样式时出错
【发布时间】:2011-04-02 14:07:37
【问题描述】:
var d = document;
div = d.body.appendChild(d.createElement("DIV"));
div.id = "hi";
div.innerHTML = "Hello World";

cssStyle = ["fontFamily", "fontStyle"];
cssAn = ["Arial", "italic"];

div.style.cssStyle[0] = cssAn[0];

它不设置样式。相反,它返回一个错误,指出“无法设置未定义的属性 0”。我做错了什么?

【问题讨论】:

  • 对不起。我是这个网站的新手。我什至不知道该怎么做......
  • FAQ 将是一个好的开始。

标签: javascript web


【解决方案1】:

我想你想要:

div.style[cssStyle[0]] = cssAn[0];

【讨论】:

    【解决方案2】:

    cssStyle 不是 div.style. 的属性 你想要:

    div.style[cssStyle[0]] = cssAn[0];
    

    【讨论】:

      【解决方案3】:

      这与 Javascript 无关——这是一个通用的编程原则。

      您有一个变量cssStyle,其中包含"fontFamily""fontStyle"

      访问div.style 的属性cssStyle 与变量cssStyle 没有任何关系。

      你需要div.style[cssStyle[0]] = cssAn[0]

      编辑:

      此外,如果您希望在div 上设置名称在cssStylescssAn 中的相应值的所有属性,那么假设cssStylecssAn 具有相同数量的元素,您可以:

      for (var i = 0; i < cssStyle.length; i += 1) {
          var name = cssStyle[i];
          var value = cssAn[i];
          div.style[name] = value;
      }
      

      【讨论】:

      • 附带说明,您应该将 cssStyle 重命名为 styleAttrs 并将 cssAn 重命名为 styleValues 以表示两者都是数组。此外,如果您想正确,CSS 表示实际的 .css 文件或 HTML 文件中的内联样式表。您在 JS 代码中指定的样式(或直接使用style="..." HTML 属性)就是样式。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-01
      • 2015-08-10
      相关资源
      最近更新 更多