我几乎已经完成了以下工作,但也遇到了许多令人困惑的方法。我们希望在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 ]);发布于 2011-10-01 23:08:06
你没有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" });发布于 2011-10-01 23:21:09
您的问题与“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]);
}https://stackoverflow.com/questions/7620963
复制相似问题