一次设置多个属性而不使用jquery

时间:2016-10-18 14:08:56

标签: javascript html dom

有一种方法可以用更短的方式编写此代码 而不是

            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"),
            ...

2 个答案:

答案 0 :(得分:3)

当然,你可以使用循环。

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"
});

答案 1 :(得分:2)

您可以创建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"
});