试图在javascript调用中隐藏包含内容的div

试图在javascript调用中隐藏包含内容的div,javascript,css,html,show-hide,Javascript,Css,Html,Show Hide,我一直在尝试使用这个 但是我不想点击链接,而是想让JavaScript调用这个函数 像 脚本调用了toogleLayer函数,但什么也没有发生,并且 输入值放在页面加载时运行的其他脚本中。我一直在想这是否是问题所在。有谁愿意对此发表评论 --更新-- 所以我被要求更多的代码, localStorage中的值是在另一个页面上设置的,因此您只能在该页面之后获得该页面。这只是为了显示我使用的数据类型 我有点不懂javaScript,所以希望它不难阅读好的,我做了一个快速测试,这个就可以了。只要把

我一直在尝试使用这个

但是我不想点击链接,而是想让JavaScript调用这个函数

脚本调用了toogleLayer函数,但什么也没有发生,并且 输入值放在页面加载时运行的其他脚本中。我一直在想这是否是问题所在。有谁愿意对此发表评论

--更新-- 所以我被要求更多的代码,

  • localStorage中的值是在另一个页面上设置的,因此您只能在该页面之后获得该页面。这只是为了显示我使用的数据类型

我有点不懂javaScript,所以希望它不难阅读

好的,我做了一个快速测试,这个就可以了。只要把你现在的功能换成这个,它;它更干净、更简单。此外,document.getElementById(id)在当前的每个浏览器中都受支持,并且可以追溯到IE6,因此除非您需要netscape支持,否则您不需要;需要资源提供的所有额外代码

function toggleLayer(id){
    // get the element (this is supported in all modern browsers)
    var element = document.getElementById(id);
    // set the style display of this element to none if its set to be
    // anything else than none, otherwise set it to block
        element.style.display = element.style.display != "none"
            ? "none"
            : "block";
 }
我测试了这个,它成功了

编辑-[不同的东西!] 好吧,对不起,我有点误解了,但我找到了解决的办法。归结起来就是:因为javascript代码位于DIV元素之上,所以它在页面创建DIV元素之前执行。因此javascript将查找元素,并返回未定义的元素,因为它们尚未定义。因此,您必须将脚本移动到结尾标记之前,或者在代码中添加以下内容(请不要这样做,我还添加了一个间隔以查看函数的工作情况):


您可能还希望将ToggleLayer移到window.onload函数之外,因为您无法从页面中触发它(同样,该函数现在定义在window.onload内部,并且超出了DIV元素的作用域…).

FYI:除非您有除
false
以外的任何其他值可比较,否则您不需要
else if
零件!这里的
else
就足够了。作为旁注,您还可以执行
切换图层(输入?'id':'id2')
@DhavalMarthak True,但要比较的值更多。这只是我砍的东西out@adeneothx,我没看到,但这并不能让它工作我担心,把你的代码放多点,你的脚本叫什么?您在控制台日志/屏幕中有任何错误吗?非常感谢!所以,如果我把我的代码替换成你的代码,它应该会工作?我刚刚测试过,它确实工作了。你能帮我把它贴到什么地方吗?诅咒当我尝试它仍然是唯一的工作时,我使用的链接,哎呀,这做了!谢谢!
function toggleLayer(id){
    // get the element (this is supported in all modern browsers)
    var element = document.getElementById(id);
    // set the style display of this element to none if its set to be
    // anything else than none, otherwise set it to block
        element.style.display = element.style.display != "none"
            ? "none"
            : "block";
 }
window.onload = function(){
        setInterval(setSize,1000);
        // the rest of your functions here - the above interval is so you can see it toggling
}
// function toggleLater(){...} here