【问题标题】:How can I put a variable within a Javascript document call?如何在 Javascript 文档调用中放置变量?
【发布时间】:2010-11-01 11:57:43
【问题描述】:

我正在尝试创建一个字符串以传递给其中包含许多变量的 PHP 文件。 Javascript 代码通过一组变量 - 其名称对应于页面上表单中的复选框。如果数组中变量的名称已在下面的表格中检查,则它将变量的名称添加到发布到 PHP 文件的字符串中。代码如下:

var datesStr = [“L2010L04L01”、“L2010L04L02”、“L2010L04L06”、“L2011L01L07”、“L2010L10L09”、“L2010L07L09”、“L2011L05L10”]; //ETC。这是一个样本;清单要长得多。 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。这是一个样本;清单要长得多。
   var sendStr = "";
var intermedDatesStr = "";

   for (var i in datesStr) {

   intermedDatesStr = document.swapOptions.datesStr[i];

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

但它也不起作用。我认为浏览器正在寻找一个名为“intermedDatesStr”的对象。有没有办法引用持有的对象作为变量值?在这里的任何帮助将不胜感激!

谢谢, 本

【问题讨论】:

  • “不起作用”到底是什么意思?如果是 Javascript 问题,请显示完成后生成的 HTML,而不是 PHP 源代码,这样更容易调试。
  • 抱歉说的不够清楚,我已经做了这些调整。

标签: javascript variables


【解决方案1】:

当像这样动态访问属性时,您需要使用bracket notation

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

这访问了这样的属性:

document.swapOptions["L2010L04L01"]
//which is the same as:
document.swapOptions.L2010L04L01

另一个变化是使用普通的for 循环,for...in 循环不是遍历数组的正确方法,你会得到其他继承的属性,不一定是你期望的顺序。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-23
    • 2017-03-20
    • 2016-12-31
    • 2014-06-20
    • 1970-01-01
    • 2017-06-20
    • 1970-01-01
    • 2012-07-18
    相关资源
    最近更新 更多