javascript - 为什么我的 JavaScript 不能工作!?它正在选择 ID 但不会应用显示更改

标签 javascript html css

在开始学习之前,我知道我应该学习 jQuery,但我还没有学习,我想先学习原始 JavaScript!好吧,主要是。有人可以在不使用 jQuery 的情况下帮助我,只是为了理解,谢谢!:

您好,我是 JavaScript 的新手,开始学习它没多久,您可以从第一个用于导航的代码(它有效,所以我要离开它)看到。

但是,我的问题出现在第二段代码上,我在观看有关事件监听器等的视频后尝试从不同的 Angular 尝试一些东西,我写的所有内容对我来说都是有意义的,我正在逐步完成, 它正在选择所有正确的东西,但它仍然没有显示所需的结果!!

当您单击 CSS 时,我希望它显示 ID 为“cs”的 div,对于 HTML 和 JavaScript 也是如此。

我真的不太了解 JavaScript,无法自己解决这个问题,我想不出有什么办法可以帮助解决这个问题!

谁来救救我,我的脑子快疯了,我想 sleep 了!

这是代码,这是 JS fiddle :https://jsfiddle.net/pmj26o9p/2/

var htm = document.getElementById('htm');
var css = document.getElementById('css');
var js = document.getElementById('js');

htm.addEventListener("click", contentShow);
css.addEventListener("click", contentShow);
js.addEventListener("click", contentShow);

function contentShow() {
  var whichOne = this.attributes["data-id"].value;
  var switcheroo = document.getElementById(whichOne);

switcheroo.onclick = function() {

  if (switcheroo.style.display === "none") {
    switcheroo.style.display = "";
  } else {
    switcheroo.style.display = "none";
  }

}

编辑:再次阅读代码时,我认为即使它有效也不会实现我想要的。这将让我显示和隐藏我正在单击的内容吗?

我想显示被点击的一个,然后隐藏/应用 display:none 到所有其他未被点击的。

最佳答案

我下面的示例将根据您的编辑评论显示所选 block 并隐藏其他 block 。

var htm = document.getElementById('htm');
var css = document.getElementById('css');
var js = document.getElementById('js');

function contentShow(el) {
  var whichOne = el.attributes["data-id"].value;
  var switcheroo = document.getElementById(whichOne);

  // show selected block, hide the others
  switch (switcheroo) {
    case htm:
      htm.style.display = "block";
      css.style.display = "none";
      js.style.display = "none";
      break;
    case js:
      htm.style.display = "none";
      css.style.display = "none";
      js.style.display = "block";
      break;
    case css:
      htm.style.display = "none";
      css.style.display = "block";
      js.style.display = "none";
      break;
  }
}
<span data-id="htm" onClick="contentShow(this)" style="margin-right:10px;color:red; cursor:pointer">Click to show the HTML Block</span>
<span data-id="css" onClick="contentShow(this)" style="margin-right:10px;color:green; cursor:pointer">Click to show the CSS Block</span>
<span data-id="js" onClick="contentShow(this)" style="margin-right:10px;color:blue; cursor:pointer">Click to show the JS Block</span>
<br/>
<br/>
<div id="htm">Some HTML info here</div>
<div id="css" style="display:none">Some CSS info here</div>
<div id="js" style="display:none">Some JavaScript info here</div>

关于javascript - 为什么我的 JavaScript 不能工作!?它正在选择 ID 但不会应用显示更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41030787/

相关文章:

javascript - Dojo JS ToggleButton 显示为已启用但不允许单击/切换和悬停轮廓

javascript - 使 div 元素粘在屏幕顶部

javascript - 是否可以根据布局改变显示的 flex 元素数量?

javascript - 航点删除类

javascript - 函数没有获取更改的变量,它不是全局的吗?

html - 悬停时删除CSS中的圆圈

html - 在 BeautifulSoup 中提取至少一个类的 div

javascript - chrome 如何知道我登录成功?

jquery - 如何使用 CSS 从图像中去除颜色?

html - CSS中的分层定时动画?