我有以下[严重剪切]代码:
data = {};
data['someradio'] = '2';
for(key in data)
{
if(data.hasOwnProperty(key))
{
if(key == 'someradio')
{
document.getElementById(key + '1').checked = data[key] == '1' ? true : false;
document.getElementById(key + '2').checked = data[key] == '2' ? true : false;
document.getElementById(key + '3').checked = data[key] == '3' ? true : false;
}
}
}
有没有办法将3 document.
行压缩为1?
这条线实际上有12次(不是3次)重复,仅更改了数字。
答案 0 :(得分:2)
var counter = 13;
while ( --counter ) {
document.getElementById(key + counter).checked = data[key] == counter;
}
答案 1 :(得分:2)
data = {};
data['someradio'] = '2';
for(key in data)
{
if(data.hasOwnProperty(key))
{
if(key == 'someradio')
{
for (var i = 1; i <= 3 /*put desired value there */; i++) {
document.getElementById(key + i).checked = data[key] == i ? true : false;
}
}
}
}
答案 2 :(得分:1)
这里有一个更便宜的方式:
data = {};
data['someradio'] = '2';
var key = 'someradio';
var p;
if (p = data[key]) {
for(var i = 1; i < 4; i++) {
document.getElementById(key + i).checked = (i == p);
}
}