2016-10-18 26 views
2

有一个在我尝试与不工作如下简短的形式 而不是设置多属性一次没有jQuery的

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

您可以创建将地图作为输入,并添加这些属性的功能一个接一个。 – gurvinder372

回答

4

当然,你可以使用一个循环。

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

谢谢Domenic! ,我可以利用这一点,我看到了你的简历SO,我们正面临着一些镀铬的问题,是有可能不久与您共同协商?也许你可以给一些方向,如果是让我知道如何通过电子邮件或...有一个美好的一天,非常感谢你! –

3

您可以为循环功能创建

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