首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSON到setAttribute()

JSON到setAttribute()
EN

Stack Overflow用户
提问于 2011-10-01 22:55:01
回答 2查看 3.9K关注 0票数 1

我几乎已经完成了以下工作,但也遇到了许多令人困惑的方法。我们希望在setAttribute()方法属性的attr{}中使用key:value,而不使用框架。

请提供一个轻薄的解决方案:

代码语言:javascript
复制
testDiv = document.getElementById("testDiv");


attr = {

    align:"center",
    title:"The Test Div"

};

//Possible converting JSON to String, the use in setAttribute?

for(var x in attr) alert(x + " , " + attr[ x ] );

testDiv.setAttribute( x ,  attr[ x ]);
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-10-01 23:08:06

你没有JSON,你有一个对象字面量。无论如何,如果我理解正确的话,您想为一个特定的元素设置所有指定的属性吗?如果你想要一些可重用的东西,函数中的循环应该很容易做到:

代码语言:javascript
复制
function setMultipleAttributes(el, attributes) {
   for (var attr in attributes)
     el.setAttribute(attr, attributes[attr]);
}

var testDiv = document.getElementById("testDiv");

setMultipleAttributes(testDiv, { align : "center", title : "The Test Div" });
票数 2
EN

Stack Overflow用户

发布于 2011-10-01 23:21:09

您的问题与“JSON”(实际上只是一个JavaScript对象文字)或设置属性无关。是这样的:

代码语言:javascript
复制
for(var x in attr) alert(x + " , " + attr[ x ] );

testDiv.setAttribute( x ,  attr[ x ]);

由于没有在for循环中使用大括号,因此只执行紧随其后的语句。如果我添加大括号,上面的代码如下所示:

代码语言:javascript
复制
for(var x in attr){
    alert(x + " , " + attr[x] );
}
testDiv.setAttribute( x ,  attr[x]);

setAttribute不是在循环中调用的--它只是在结束时调用一次。相反,您可能需要…

代码语言:javascript
复制
for(var x in attr){
    alert(x + " , " + attr[x] );
    testDiv.setAttribute( x ,  attr[x]);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7620963

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档