在没有jquery的情况下一次设置多个属性

set multi attributes at once without jquery

本文关键字:一次 设置 属性 jquery 情况下      更新时间:2023-09-26

有一种更短的方法来编写此代码而不是

            var aTag = document.createElement('a');
            aTag.setAttribute('href', oUrl.toString());
            aTag.setAttribute('rel', "test");
            aTag.setAttribute('target', "_blank"),
            ...

我尝试以下不工作…这可能吗?我发现在网络的例子与Jquery,但我不想使用它现在…

            var aTag = document.createElement('a'),
            .setAttribute('href', oUrl.toString()),
            .setAttribute('rel', "test"),
            .setAttribute('target', "_blank"),
            ...

当然,你可以使用循环。

function setAttributes(el, attrs) {
  Object.keys(attrs).forEach(function (attr) {
    el.setAttribute(attr, attrs[attr]);
  });
}
var aTag = document.createElement('a');
setAttributes(aTag, {
  href: oUrl,
  rel: "test",
  target: "_blank"
});

你可以创建一个for循环函数

function setAttr(el, attrs) {
  for(var key in attrs) {
    el.setAttribute(key, attrs[key]);
  }
}

然后调用它:

var aTag = document.createElement('a'),
setAttr(aTag, {
  "href": oUrl.toString(), 
  "rel": "test", 
  "target": "_blank"
});