将函数参数传递给getElementById“id”

时间:2013-01-15 23:42:22

标签: javascript function arguments getelementbyid

当您从选择框中选择适当的值时,它是一个显示各种文本输入表单的js函数。

function arata_formular(formular) {
            document.getElementById("formular").style.visibility = "visible";
            if(document.getElementById("formular").style.display == "none" ) {
                document.getElementById("formular").style.display = "inline";
            }
            else {
                document.getElementById("formular").style.display = "visible";
            }
        }

但是没有按预期工作。虽然它有一个参数,无论我将传递到那里(让我们说arata_formular(熵),它仍然会寻找“公式”id而不是“entropy”。我怎样才能使'inline'插入?

不幸的是我不能在这个或其他框架上使用jquery。我必须只使用javascript。 谢谢!

2 个答案:

答案 0 :(得分:4)

摆脱报价。

function arata_formular(formular) {
    var el = document.getElementById( formular );

    el.style.visibility = "visible";
    el.style.display = el.style.display === "none" ? "inline" : "visible";
}

或者


function arata_formular(formular) {
    document.getElementById( formular ).style = {
        visibility: "visible",
        display: el.style.display === "none" ? "inline" : "visible"
    }
}

答案 1 :(得分:3)

formular是一个变量,但你像字符串一样使用它。此外,您应该缓存它:

function arata_formular(formular) {
        var el = document.getElementById(formular);
        el.style.visibility = "visible";
        if(el.style.display == "none" ) {
            el.style.display = "inline";
        }
        else {
            el.style.display = "visible";
        }
        return el;//in case you want to use the element
}