当前位置: 首页 > 知识库问答 >
问题:

为一个元素设置多个属性

顾光明
2023-03-14

我试图一次为一个元素设置多个属性。我找到了这个答案,以及对那个答案的这个评论。在那里的JSFiddle中,他不使用字符串作为属性名,与使用字符串的答案相反。

我在第7行添加了以下内容:

else if (at[prop] === html) {
    this.innerHTML = set[idx];
}

但是我得到了以下错误:

未捕获的引用Error:未定义html

评论JSFiddle(已编辑)

共有1个答案

空谦
2023-03-14

在比较中使用'html'。还在recursiveset函数中传递this上下文,以便将this引用到div元素这个总是引用我们正在执行的函数的“所有者”。如果没有所有者,它将引用窗口

试试这个:

var manipulateAttributes = function(attr, element) {
  var recursiveSet = function(at, set) {
    for (var prop in at) {
      /* check if object and not a dom node or array */
      if (typeof at[prop] == 'object' && at[prop].dataset == null && at[prop][0] == null) {
        recursiveSet(at[prop], set [prop]);
      } else if (prop == 'html') {
        this.innerHTML = at[prop];
      } else {
        set [prop] = at[prop];
      }
    }
  }.bind(element);
  recursiveSet(attr, element);
}
var test = document.getElementById("test");

manipulateAttributes({
  html: 'hellop',
  style: {
    background: "lightGreen",
    color: "blue",
    width: "100px"
  },
  className: "testclass",
  onclick: function(e) {
    alert("the test div has been clicked and its width is: " + this.style.width);
  }
}, test);
.testclass {
  font-size: 32px;
  font-weight: bold;
  cursor: pointer;
}
<div id="test" style="width:200px;height:200px;background:#000;color:#fff;">Test</div>
 类似资料:
  • 如何使用JavaScript同时设置多个属性?不幸的是,我不能在这个项目中使用像jQuery这样的框架。以下是我现在拥有的:

  • 我想立即使用jQuery来完成这个任务。

  • 问题 你需要一个元素中的HTML内容 方法 可以使用Element中的HTML设置方法具体如下: Element div = doc.select("div").first(); // <div></div> div.html("<p>lorem ipsum</p>"); // <div><p>lorem ipsum</p></div> div.prepend("<p>First</p>");//

  • 问题内容: 是否可以在CSS中选择多个具有某个特定类,id等父的元素?例如: 如果不是,是否有办法选择该元素的所有子元素? 问题答案: 是否可以在CSS中选择多个具有某个特定类,id等父的元素? 当前,不幸的是,并非没有复制整个父选择器并指定所有后代,而是1: 直到选择器3最终确定后,他们才提出了伪类表示法来进行此操作,直到最近,基本实现才开始出现。 简而言之,现在已成为标准的伪类称为。在遥远的将

  • 我有一个2-d NumPy阵列,看起来像这样: 我想修改它,使每一行都由所有0组成,除了第一个非零条目。如果一开始都是0,我们不会改变任何东西。 我可以这样做: 但这很难看,而且没有矢量化。对如何将其矢量化有什么建议吗? 谢谢

  • 我需要定义一个XML元素,它没有子元素或任何内容,也没有属性。 这就是我正在做的: 这看起来很好,但我想知道是否有一种方法可以做到这一点,而不必声明复杂类型。另外,如果我的东西有什么问题,请告诉我。 预料到有人可能会好奇我为什么需要这样一个元素:它用于不需要任何参数值的SOAP操作。