【问题标题】:Displaying image with id on certain part of page but not elsewhere on page在页面的某些部分显示带有 id 的图像,但在页面的其他位置不显示
【发布时间】:2015-02-15 06:28:22
【问题描述】:

我想让 id 为 EleId 的图像显示在页面的某个部分,但不显示在其他地方。这样做的方法是什么?提前致谢。

<script type="text/javascript">
function toggleView(switchView) {
  if (switchView == "list") {
    document.getElementById(EleId).style.display = "none";
  }
  else if (switchView == "thumbs") {
    document.getElementById(EleId).style.display = "block";
  }
}
</script>

使用上面的这段代码会导致带有 EleId 的图像隐藏并显示在页面上的任何位置。

也许对我希望受此代码影响的区域使用 DIV 标签?欢迎任何想法。

【问题讨论】:

  • 这永远不会奏效,您在每次 getElementById 调用后都缺少一个大括号,并且您使用的 getElementById 确实错误。请先阅读:developer.mozilla.org/es/docs/DOM/document.getElementById,然后他们再试一次。
  • 嗯,首先这意味着您的页面上有多个具有相同 id 的控件,不建议这样做。如果要隐藏特定图像,则必须将其上下文关联到父级或其他内容。你能告诉我们你的 HTML 吗?
  • JavaScript 是唯一适用于该问题的标签。此外,代码在语法上也不正确 - 您缺少括号和花括号。
  • ianaya89,只是代码中的拼写错误。你明白我想做什么。反正修好了!
  • 所有错别字都已修复。您甚至无法查看代码并理解“尝试使具有这些 ID 的图像仅在页面的某些部分隐藏和显示。由于使用相同的 ID 多次使用它们,因此导致它们在页面上的任何地方隐藏和显示。”跨度>

标签: javascript jquery css asp.net ajax


【解决方案1】:

评论是正确的。存在格式错误,但这可能只是一个错误,因为您说它隐藏了页面上的所有元素(即代码可以正常工作)。

如果您要在页面上有多个元素,则不能使用 ID。你需要使用类。我想我可能会添加一个甚至根本不需要 javascript 的解决方案,也许只是为了激发一种这样做的方式。它需要标记的某些内容(这需要elem 类是原始“img”元素的下一个兄弟)。这可以调整,但您需要确保 .img 框有 tabIndex="0" 以便它们可以接收焦点。

纯 CSS 解决方案

.img { 
  height: 5em;
  width: 5em;
  background: gray;
  border: .5em solid #eee;
  margin: 1em;
}

.elem { 
  width: 5em;
  height: 2em;
  background: lime;
  display: none;
}

.img:focus + .elem { display: inline-block; }
<h1>Click the gray box to show the elem div</h1>
<div class="img" tabIndex="0"></div>
<div class="elem"></div>

<div class="img" tabIndex="0"></div>
<div class="elem"></div>

<div class="img" tabIndex="0"></div>
<div class="elem"></div>

<div class="img" tabIndex="0"></div>
<div class="elem"></div>

【讨论】:

    【解决方案2】:

    这里有一些问题。首先,您的函数接受一个名为“switchImgTag”的变量,但随后它似乎正在检查变量“switchView”的值,我在代码 sn-p 的其他地方没有看到它的定义,所以我认为这是一个错误.其次,getElementById 完全按照您的想法进行 - 通过 ID 获取元素。 EleID.style.display = "none" 不是 ID,所以这不起作用。
    最后,如果没有看到您的 HTML,我无法确定,但您似乎对多个图像使用相同的 ID,这是一个非常糟糕的主意,所以我会先纠正这个问题。

    【讨论】:

    • 是的,我纠正了一些错别字。试图使带有这些 ID 的图像仅在页面的某些部分隐藏和显示。导致它们在页面上的任何位置隐藏和显示,因为它们使用相同的 ID 多次使用。
    • 好吧,如果您不愿意纠正重复 ID 问题,为什么不尝试使用 CSS 类?
    猜你喜欢
    • 2019-02-05
    • 1970-01-01
    • 2020-07-25
    • 2015-04-09
    • 2011-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-28
    相关资源
    最近更新 更多