如何在javascript中将数组导入函数?

时间:2013-07-13 16:56:23

标签: javascript arrays function

我需要以下代码的帮助:

    <script type="text/javascript">
        var opcao = new Array (
            document.getElementById("cred_form_1864_1_wpcf-pde_Pesquisas_descontinuadas"),
            document.getElementById("cred_form_1864_1_wpcf-pnps_Pesquisas_nao_patenteaveis-sigilosas")
        );

        function check1(){
            if (opcao[0].checked == true){
                for (var i = 0; i < opcao.length; i++){
                    if (i != 0){
                        opcao[i].checked = false;
                        opcao[i].disabled = true;
                    }
                }
            }
        }

        function check2(){
            if (opcao[1].checked == true){
                for (var i = 0; i < opcao.length; i++){
                    if (i != 1){
                        opcao[i].checked = false;
                        opcao[i].disabled = true;
                    }
                }
            }
        }
    </script>

我需要在函数'check1()'和'check2()'中调用数组'opcao'。我怎么能这样做?

====================

我尝试了Mishik的建议没有奏效。我需要的是函数'check1()'和'check2()'访问相同的数组'opcao'。 如果我在每个函数中编写数组,代码就能完美运行。但是,对于每个创建的函数,我将如何重复相同的数组。

1 个答案:

答案 0 :(得分:2)

如果您的代码在加载页面之前执行,那么opcao数组实际上不会包含必需的元素。

您需要将代码包装在window.onload中,以便在执行脚本时,document中将提供所有必需的元素。

window.onload = function() {
    var opcao = new Array (
        document.getElementById("cred_form_1864_1_wpcf-pde_Pesquisas_descontinuadas"),
        document.getElementById("cred_form_1864_1_wpcf-pnps_Pesquisas_nao_patenteaveis-sigilosas")
    );

    function check1(){
        if (opcao[0].checked == true){
            for (var i = 0; i < opcao.length; i++){
                if (i != 0){
                    opcao[i].checked = false;
                    opcao[i].disabled = true;
                }
            }
        }
    }

    function check2(){
        if (opcao[1].checked == true){
            for (var i = 0; i < opcao.length; i++){
                if (i != 1){
                    opcao[i].checked = false;
                    opcao[i].disabled = true;
                }
            }
        }
    }
}