Изменение имени и выполнение функции в цикле
Всем примет.
Подскажите, пожалуйста, как сделать, чтобы код ниже заработал?
for (nnn=0;nnn<97;nnn++){
for (bbb=0;bbb<8;bbb++){
if(new frames.quiz_main.initValuate+nnn+()[+bbb+].valuation==1){
ggg="radio0"+nnn+"00"+bbb;
frames.quiz_main.document.domanda.ggg.checked=true;
}
}
}
Интересует сборка и запуск вот этой строки: new frames.quiz_main.initValuate+nnn+()[+bbb+].valuation;==1 Заранее спасибо. |
Цитата:
на заметку:
var i = 3;
while(i--){
alert('id'+i);
}
|
Цитата:
Строка, после формирования должна выглядеть вот так, которая в свою очередь должна выполниться и получить значение: new frames.quiz_main.initValuate22()[1].valuation Вот так не работает(алерт не срабатывает :(, значит строка не выполняется):
for (nnn=0;nnn<97;nnn++){
for (bbb=0;bbb<8;bbb++){
if('new frames.quiz_main.initValuate'+nnn+'()['+bbb+'].valuation'==1){
alert('Test');
ggg='radio0'+nnn+'00'+bbb;
frames.quiz_main.document.domanda.ggg.checked=true;
}
}
}
|
Если сформировать строку, она не обязана исполняться. Строки не занимаются этим:) Да и вообще, бредово как-то выглядет в этом всем деле оператор new.
|
<script type="text/javascript">
window.onload = function(){
for(var i=0; i<3; i++){
var element = document.createElement('div');
element.id = 'id'+i;
element.innerHTML = 'click'+i;
document.body.appendChild(element);
element.onclick = (function(){
return function(){
alert(this.id);
};
})();
}
};
</script>
|
всем спасибо, вопрос решил...
помог eval() :)
var nn=1;
for (i=nn;i<=98;i++){
for (bb=0;bb<9;bb++){
cc='new frames.quiz_main.initValuate'+i+'()['+bb+'].valuation';
if(eval(cc)==1){
if(i>10){ ff='radio0'+i+'00'+bb;}
if(i<10){ ff='radio00'+i+'00'+bb;}
hh='frames.quiz_main.document.domanda.'+ff+'.checked=true';
jj=eval(hh);
}
}
}
|
Вообще подозреваю что нужно было что-то типа:
var nn=1;
for (i=nn;i<=98;i++){
for (bb=0;bb<9;bb++){
if(new frames.quiz_main['initValuate'+i]()[bb].valuation){
if(i>10){ ff='radio0'+i+'00'+bb;}
if(i<10){ ff='radio00'+i+'00'+bb;}//а если i==10?
frames.quiz_main.document['domanda.'+ff].checked=true;
}
}
}
|
| Часовой пояс GMT +3, время: 16:56. |