JavaScript错误未定义对象,尽管对象存在

JavaScript错误未定义对象,尽管对象存在,javascript,Javascript,我有以下代码 <!DOCTYPE HTML> <html> <head> </head> <body> <div class="full-details-box" name="full_details_box" id="full-details-box"></div> <hr /> <script type='text/ja

我有以下代码

<!DOCTYPE HTML>
<html>
    <head>
    </head>
    <body>
        <div class="full-details-box" name="full_details_box" id="full-details-box"></div>
        <hr />
        <script type='text/javascript'>
        function show_3136(){
            document.full_details_box.style.display='block';
        }
        show_3136();
        </script>
    </body>
</html>

但是我确实有一个名为
full\u details\u box
/code>元素,那么为什么会出现错误呢

不要对div使用
name
属性。它甚至不存在。使用id,然后:

document.getElementById('full-details-box')...

要访问此元素,请使用
getElementById

function show_3136() {
    document.getElementById("full-details-box").style.display = "block";
}
你可以做一个

document.getElementById("full-details-box").style.display='block';

只是为了增加您的困惑-您可能一直在考虑表单字段 所有这些都适用于表单字段(仅当您将字段包装为表单标记时,才使用第一个)


函数showFormField(){
document.forms[0]。完整的_详细信息_boxName.style.display='block';
//或document.forms[0]。元素[“full_details_boxName”]。style.display='block';
}
函数showNamedField(){
document.getElementsByName(“完整详细信息”boxName“)[0].style.display='block';
}
函数showFieldById(){
document.getElementsById(“full_details_boxID”).style.display='block';
}
函数showFieldByClassName(){//不适用于所有IE浏览器
document.getElementsByClassName(“full_details_boxCLASS”)[0].style.display='block';
}

对于DIV,您将使用ID或CLASS,而不是name

HTML:

<div id="full-details-box">
    Just some test content
</div>
<hr />
JS:

例如

document.getElementById("full-details-box").style.display='block';
<html>
<head>
    <script type='text/javascript'>
    function showFormField(){
        document.forms[0].full_details_boxName.style.display='block';
        // or document.forms[0].elements["full_details_boxName"].style.display='block';
    }
    function showNamedField(){
        document.getElementsByName("full_details_boxName")[0].style.display='block';
    }
    function showFieldById(){
        document.getElementsById("full_details_boxID").style.display='block';
    }
    function showFieldByClassName(){ // does not work in all IE browsers
        document.getElementsByClassName("full_details_boxCLASS")[0].style.display='block';
    }
    </script>
</head>
<body>
<form>
  <input class="full-details-boxCLASS" name="full_details_boxName" id="full-details-boxID"/>
</form>
</body>
</html>
<div id="full-details-box">
    Just some test content
</div>
<hr />
div#full-details-box { 
    display:none;
}
function show_3136(){
    document.getElementById("full-details-box").style.display = "block";
}
show_3136();