0

我有以下[大量剪断]代码:

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

有没有办法将 3document.行压缩为 1?

这条线实际上有 12 次(不是 3 次)重复出现,只是数量发生了变化。

4

3 回答 3

2
var counter = 13;

while ( --counter ) {
    document.getElementById(key + counter).checked = data[key] == counter;
}
于 2013-04-19T04:18:45.823 回答
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;            
            }
        }
    }
}
于 2013-04-19T04:19:21.690 回答
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);
    }
}

http://jsfiddle.net/JbpBx/

于 2013-04-19T04:25:51.073 回答