Javascript 将变量传递给document.getElementById()

Javascript 将变量传递给document.getElementById(),javascript,Javascript,您好,我有一个函数,需要向document.getElementById传递一个变量 我的功能是这样的 function showComment(theField) { var x = document.getElementById("theField"); if (x.style.display === "none") { x.setAttribute('style', 'display: bloc

您好,我有一个函数,需要向document.getElementById传递一个变量

我的功能是这样的

        function showComment(theField) {
            var x = document.getElementById("theField");
            if (x.style.display === "none") {
                x.setAttribute('style', 'display: block !important');
            } else {
                x.setAttribute('style', 'display: none !important');
            }
        }
<button type="button" class="btn-reset" onclick="showComment(theDiv)"> Show/hide </button>
我的html按钮是这样的

        function showComment(theField) {
            var x = document.getElementById("theField");
            if (x.style.display === "none") {
                x.setAttribute('style', 'display: block !important');
            } else {
                x.setAttribute('style', 'display: none !important');
            }
        }
<button type="button" class="btn-reset" onclick="showComment(theDiv)"> Show/hide </button>

你几乎是对的。使用:

var x = document.getElementById(theField); // (no quotes)
引号表示文字值。如果不使用引号,则使用变量

在HTML中,您确实希望引号传递字符串值:

... onclick="showComment('theDiv')" ...

现在应该做的是选择id为theDiv的元素。

那么为什么要传递字符串文字而不是变量呢?顺便说一句,不要使用!重要提示,当您可以只分配给x.style.display时,不要使用setAttribute。不要从JavaScript修改样式。改为应用类。尽量不要使用getelementbyid,而是使用绑定。嘿,伙计,你是最好的救生员!!非常感谢。祝你好运@andrew06041990我很高兴我帮了忙!一定要将这个答案标记为已被接受,以向后代表明它对你有帮助!知道这里的错误是未捕获的引用错误可能会有所帮助:没有定义div,这为乔纳森的上述回答提供了一些额外的上下文。当前,DIV试图作为对不存在的变量(而不是您想要的字符串文本)的引用来传递。内联事件处理程序在HTML标记中本质上是eval的-它们是错误的做法,并导致分解不良、难以管理的代码。认真考虑用JavaScript附加事件,例如: