元素无法分配给变量

时间:2014-11-28 03:01:27

标签: javascript html getelementbyid

我正在尝试使用ids containDivstatus更改元素的innerHTML属性,但它只会更改containDiv而不是status。当我在控制台中查看时,它说“无法设置未定义的属性innerHTML”,因此它似乎无法找到该元素,但我不知道为什么。如果有人能帮我解决这个问题,那就太好了。

HTML:

<html>
    <head>
        <link rel="stylesheet" href="../css/css_all.css">
    </head>
    <body>
        <div id="wrapper">
            <div class="header">Current Status:</div>
            <div style="padding:2px 0px 0px 2px;">
                <div id="containDiv" class="i18n-replaced">
                    <span id="status" class="block_count_number"></span>
                    loading...
                </div>
            </div>
        </div>
        <script type="text/javascript" src="../js/wtf.js"></script>
    </body>
</html>

Javascript:

function checkStatus(){
    var hostname = window.location.hostname,
        status = document.getElementById("status"),
        container = document.getElementById("containDiv");

    if(hostname==="stackoverflow.com" || hostname==="facebook.com" || hostname==="youtube.com"){
        status.innerHTML = "Active ";
        container.innerHTML = "on this page.";
    }
    else {
        status.innerHTML = "Not Active ";
        container.innerHTML = "on this page.";
    }
}

2 个答案:

答案 0 :(得分:1)

status位于containDiv内...在containDiv中覆盖新HTML后,status不再存在。

答案 1 :(得分:0)

除了Derek所说的,试试:

<div id="wrapper">
        <div class="header">Current Status:</div>
        <div style="padding:2px 0px 0px 2px;">
            <div id="containDiv" class="i18n-replaced">loading...</div>
            <span id="status" class="block_count_number"></span>
        </div>
    </div>

或类似的东西。