Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ID不变_Javascript_Html_Css - Fatal编程技术网

Javascript ID不变

Javascript ID不变,javascript,html,css,Javascript,Html,Css,我正在尝试创建多个部分,并在单击时显示或隐藏它们。所以我有三个id:section2,section2hidden,和section2visible 请查看以下位置的非工作代码。点击6年级下的语言艺术链接,然后点击左上角的后退按钮(不在浏览器上!)。您将看到它将元素带回来,但它仍然是不透明度:0或其他东西。当您按下后退按钮时,初始部分仍保持IDsection2hidden。应该将其更改回第2节您的代码在查找不存在的div时似乎正在暂停 document.getElementById('6-2')

我正在尝试创建多个部分,并在单击时显示或隐藏它们。所以我有三个
id
section2
section2hidden
,和
section2visible


请查看以下位置的非工作代码。点击6年级下的语言艺术链接,然后点击左上角的后退按钮(不在浏览器上!)。您将看到它将元素带回来,但它仍然是
不透明度:0
或其他东西。

当您按下后退按钮时,初始部分仍保持ID
section2hidden
。应该将其更改回
第2节

您的代码在查找不存在的div时似乎正在暂停

document.getElementById('6-2')

导致错误
无法读取null的属性“style”

首先,在开发javascript代码时,需要有一个调试方法。如果您使用的是Firefox,则有一个名为Firebug的插件。如果你使用的是Chrome,它已经集成了。使用它,您将看到“back”函数无法完全执行,因为没有id为“6-2”的元素,并且您正在尝试访问null对象的属性。 这就回答了“为什么失败”的问题。不过,我建议大家看看这些东西:

  • 基本功能概念。可以有一个带参数的函数, 而不是构建“一()、二()、三()”等函数
  • 基本循环编程。您正在使用类似Use循环的代码让机器为您工作,而不是盲目地复制/粘贴
  • 
    .getElementById('6-1')...
    .getElementById('6-2')...
    
  • CSS类。只需添加一个类,而不是更改元素的id 对它进行修改(如“隐藏”。然后添加如下规则
    .hidden{display:none;}
    当您删除该类时,该元素将重新出现,因为该规则将不再适用

链接来来去去。请提供可复制的代码示例。ID标识元素。班级为他们设计风格。您根本不应该更改ID。@Brad+1,这应该更经常地说@丹尼斯:不是每个人都喝同样的饮料。组件化CSS是一个聪明的想法,只要你不过度细化它,但它不会使ID对减少膨胀毫无用处或具有破坏性,膨胀是真正的敌人,而不是特殊性,应该适当地使用它来保持内容更简洁。谢谢,但我是javascript的初学者,我不知道如何使用参数或循环。因此,我添加了其余部分(6-2、6-3等),但仍然不起作用。我如何向元素添加或删除类?添加不透明度:1;到您的#section2visible css规则。关于添加/删除类,请检查以下问题:我不能,因为它将再次播放动画