JSON to setAttribute()

JSON to setAttribute()

本文关键字:setAttribute to JSON      更新时间:2023-09-26

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

请提供一个简单的解决方案:

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 ]);

这里没有JSON,只有对象文字。不管怎样,如果我理解正确的话您想为一个特定元素设置所有指定的属性?如果你想要一些可重用的东西,函数中的循环应该很容易做到:

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

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

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

由于在for循环中没有使用大括号,因此只执行紧跟其后的语句。如果我添加大括号,上面的代码看起来像这样:

for(var x in attr){
    alert(x + " , " + attr[x] );
}
testDiv.setAttribute( x ,  attr[x]);

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

for(var x in attr){
    alert(x + " , " + attr[x] );
    testDiv.setAttribute( x ,  attr[x]);
}