3

我正在使用 Javascript 控制我的应用程序中的单选按钮。单选按钮的数量并不总是相同的。当单选按钮只有一个时,我遇到了问题。功能是:

function ChangeDiv() {
    var i;
    var j;

    for (i=0; i<document.doc_copy.rad.length; i++) {
        if (document.doc_copy.rad[i].checked) {
            document.getElementById(document.doc_copy.rad[i].value).style.display='block';
        } else {
            document.getElementById(document.doc_copy.rad[i].value).style.display='none';
        }
    }
}

如果选中单选按钮,我会显示一个隐藏的 HTML div。问题是当我只有一个单选按钮时,没有执行 bucle 并且没有显示隐藏的 div。

4

1 回答 1

0

再次阅读后,我相信我注意到了代码中的某些内容。您检查 document.doc_copy.rad.length(我想是单选按钮),但是当您编写代码以显示 DIV 时,您使用此 document.getElementById(document.doc_copy.rad[i].value).style.display。我认为您应该拥有与要隐藏/显示的 div 相关的其他内容,而不是 rad[i]。


感谢 Barmar,我意识到我的答案是错误的。

当您只有一个单选按钮时,您的索引为 0。这意味着 FOR 语句根本不会被执行。

您需要使用 DO...WHILE 以确保无论如何您都会执行一次。

function ChangeDiv(){   var i;  var j;      i = 0;  do {        if(document.doc_copy.rad[i].checked){           document.getElementById(document.doc_copy.rad[i].value).style.display='block';      }else{          document.getElementById(document.doc_copy.rad[i].value).style.display='none';       }   i++;    } while(i<=document.doc_copy.rad.length);
}

于 2013-06-14T20:05:32.537 回答