Как я могу поместить переменную в вызове документа Javascript? - PullRequest
0 голосов
/ 01 ноября 2010

Я пытаюсь создать строку для передачи в файл PHP с многочисленными переменными в нем.Код Javascript проходит через массив переменных, имена которых соответствуют флажкам в форме на странице.Если имя переменной в массиве было проверено в приведенной ниже форме, то оно добавляет имя переменной в строку, которая публикуется в файле PHP.Вот код:

 var datesStr = ["L2010L04L01", "L2010L04L02", "L2010L04L06", "L2011L01L07", "L2010L10L09", "L2010L07L09", "L2011L05L10"]; //etc. This is a sample; the list is much longer.
   var sendStr = "";

   for (var i in datesStr) {

   if(document.swapOptions.datesStr[i].checked == true) {
     sendStr = sendStr+"&to"+i+"="+datesStr[i];
   }

   }

Но по какой-то причине возникает проблема, когда я помещаю переменную в строку document.swapOptions.Я тоже пробовал это, но это не работает:

var datesStr = ["L2010L04L01", "L2010L04L02", "L2010L04L06", "L2011L01L07", "L2010L10L09", "L2010L07L09", "L2011L05L10"]; //etc. This is a sample; the list is much longer.
   var sendStr = "";
var intermedDatesStr = "";

   for (var i in datesStr) {

   intermedDatesStr = document.swapOptions.datesStr[i];

   if(intermedDatesStr.checked == true) {
     sendStr = sendStr+"&to"+i+"="+datesStr[i];
   } 
   }

Но это тоже не работает.Я думаю, что браузер ищет объект в форме, называемой "intermedDatesStr".Есть ли способ ссылаться на объект, содержащийся значение переменной?Любая помощь здесь будет самой ценной!

Спасибо, Бен

1 Ответ

1 голос
/ 01 ноября 2010

Вам необходимо использовать обозначение в скобках при динамическом доступе к свойствам, подобным этому:

var datesStr = ["L2010L04L01", "L2010L04L02", "L2010L04L06", "L2011L01L07", "L2010L10L09", "L2010L07L09", "L2011L05L10"]; //etc. This is a sample; the list is much longer.
var sendStr = "";
var intermedDatesStr = "";
for (var i=0; i<datesStr.length; i++) {
  if(document.swapOptions[datesStr[i]].checked == true) {
    sendStr = sendStr+"&to"+i+"="+datesStr[i];
  } 
}

При этом к таким свойствам обращаются:использует обычный цикл for, цикл for...in не является правильным способом итерации по массиву, вы получите другие унаследованные свойства и не обязательно порядок, который вы ожидаете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...