【问题标题】:Javascript to iterate through elements not workingJavascript遍历元素不起作用
【发布时间】:2014-03-24 16:50:07
【问题描述】:

几分钟前我还有一个 JavaScript 工作,现在它不再工作了,但我没有改变任何东西。

我的 JavaScript 是:

var estadoactual ="";
for (var i=1;i<=document.getElementById("cantidaddepermisos").value;i++) {
var elemento = 'chk_' + i
if (document.getElementById(elemento).checked == 1) {
     estadoactual = estadoactual + elemento + "#" + "Si" + "|"
} 
else {
      estadoactual = estadoactual + elemento + "#" + "No" + "|"
      }
}
alert("Estado actual: " + estadoactual)

在我的场景中,我有几个复选框 (chk_n),我想做的是遍历它们,我知道它们的格式为 chk_ + 数字,所以我做了那个“for 循环”

这段代码工作正常,不知道为什么它停止工作,我在这个项目上工作了 3 天,也许我错过了一些东西,所以我需要更多的人来查看并判断是否有明显的东西错了。

【问题讨论】:

    标签: javascript .net vb.net


    【解决方案1】:

    也许问题在于 javascript 文件中的缓存。

    尝试将源更改为:

    <script language="JavaScript" src="js/myscript.js?n=1"></script> 
    

    它会为您的 javascript 文件删除缓存浏览器

    【讨论】:

    • 但是这段代码在几个小时前运行良好,此后没有任何改变,这个 JS 在我的 aspx 页面的“头”中,而不是在单独的文件中,我也尝试使用 chrome 和 FF , 都清理缓存
    【解决方案2】:

    看看你的代码:

    for (var i=1;i<=document.getElementById("cantidaddepermisos").value;i++) {
    

    您正在对默认为字符串的输入值进行迭代。尝试解析它:

    for (var i=1;i<=parseInt(document.getElementById("cantidaddepermisos").value);i++) {
    

    希望它能解决你的问题。

    【讨论】:

    • 我得到了相同的结果,似乎问题出在“if (document.getElementById(elemento).checked == 1) {”我在控制台中收到关于“elemento”未定义的错误或.checked = null
    【解决方案3】:

    好的,明白了。非常感谢您尝试帮助我并花时间做这件事。我会解释发生了什么,以防其他人需要这个。

    我的表是动态创建的,这意味着我的代码隐藏正在为您可以从数据库中选择的每个“权限”创建一个 2。这些权限是手动加载到数据库中的(客户要求),您需要为每个权限添加一个数字,地雷从 1 变为 34(即今天早上一切正常)然后我添加了一个新的配置文件(99)一个特殊的隐藏权限。

    这意味着数据库中有 34 个权限,因此 for 将从 1 循环到 34,但我的复选框被命名为 chk_ + "numberofpermission"

    这意味着它们最后是 chk_1 到 chk_34 和 chk_99,所以当 javascript 到达 34 位置时,它正在寻找不存在的 chk_34,因为复选框的名称是“chk_99”

    真的很难解决这个问题,但现在它又可以工作了,需要更改我为用户设置此隐藏权限的方式以避免此问题。

    非常感谢您抽出宝贵时间,这个社区真的很棒。

    来自阿根廷的问候

    【讨论】:

      猜你喜欢
      • 2016-02-04
      • 2020-02-24
      • 2020-04-07
      • 2016-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多