0

这是我的 JS

var linkArray = {
    boothsizeDiv_link: false,
    furnishingsprovidedDiv_link: false,
    electricalDiv_link: false,
    rentalfurnishingsDiv_link: false,
    gesgraphicsDiv_link: false,
    geslaborDiv_link: false,
    contractorDiv_link: false,
    carpetingDiv_link: false,
    boothlightingDiv_link: false,
    javitsDiv_link: false,
    boothsealDiv_link: false,
    mannequinsDiv_link: false,
    calcDiv_link: false
};
for (var i in linkArray) {

    if (linkArray['boothsizeDiv_link'] == false) {

        document.getElementById('jumplinks').style.display = 'block';
        document.getElementById('boothsizeDiv_link').style.display = 'block';
    }
}

html是

<div id="jumplinks" align="left" style="display:none;">

 <div id="boothsizeDiv_link" style="display:none;"><a href="#" onclick="ToggleLinks('boothsizeDiv');"><font face="calibri">BOOTHSIZE</font></a></div>

</div>

在我的 html 文件中,有 id 为的 divjumplinksstyle='display:none;' 我尝试运行 JS 文件时,它说的document.getElementById('jumplinks')null. 问题是什么?需要帮忙..

4

2 回答 2

0

正如评论中提到的,您不需要遍历 linkArray 来查找它的长度。使用 linkArray.length 查找数组长度。也许:

console.log("linkArray length is: " + linkArray.length);

关于 null 错误,您能否告诉我们您在哪里调用 javascript?您可以将 JS 包含在头部的一个函数中,然后从其他地方调用该函数。下面的代码也可以作为一个开关,让你也可以隐藏 div:

<script>

function togLinks() {
    if (linkArray['boothsizeDiv_link'] == false) {

        var jumplinks = document.getElementById('jumplinks');
        var boothsizeDiv_link = document.getElementById('boothsizeDiv_link');

        jumplinks.style.display = jumplinks.style.display == "block" ? "none" : "block";
        boothsizeDiv_link.style.display = boothsizeDiv_link.style.display == "block" ? "none" : "block";
    }
}

</script>

调用切换链接:

<div onclick="togLinks()">show/hide links</div>
于 2013-03-14T16:28:27.347 回答
-1

您应该只在 DOM 完成加载后执行 Javascript,因此上述内容仅在document.ready事件触发后才有效。如果您在<head>页面中运行代码,它会在元素实际存在之前运行,因此它是null.

这是一个使用纯 Javascript 连接到该事件的示例: $(document).ready 等效于没有 jQuery

于 2013-03-14T09:26:05.220 回答