【问题标题】:Assigning element attribute to an other element's innerhtml. Javascript/HTML将元素属性分配给其他元素的 innerhtml。 Javascript/HTML
【发布时间】:2015-03-12 02:43:52
【问题描述】:

我正在开发一个网站,我正在尝试创建的图片页面有 1 张大图片,下面是较小的缩略图。我有一个javascript函数:

function loadThumbnail(divID){ document.getElementById("mainPicture").src = document.getElementById(divID).src; document.getElementById("mainPicture").alt = document.getElementById(divId).alt; document.getElementById("caption").innerHTML = document.getElementById(divId).alt; }

参数 divID 是一个误导性的标题,它实际上是保存缩略图的 img 元素的 ID。每当用户单击缩略图时,都会调用该函数。 .src 位有效,但我无法获得将标题更改为图片的功能。知道为什么吗?

编辑:这是 HTML

<img id="mainPicture" src="images/food/chickenAndCheeseFries1.png" width="420" height="313" alt="Chicken Tenders and Cheese Fries">

<p id="caption">Chicken tenders and cheese fries</p>

<div onClick="loadThumbnail('t1')" id="thumbnail1" class="thumbnail">
                                <div id="thumbnailPic1" class="thumbnailPic">
                                    <img id="t1" src="images/food/buffaloAndHotWings1.png" width="105" height="80" alt="Sweet Chilly and Buffalo Wings">
                                </div>
                            </div>

【问题讨论】:

  • 你试过.getAttribute("alt")而不是.alt吗?
  • 我刚刚试了,没有运气
  • 在第一行使用divID,在另一行使用divId,即undefined,从而导致错误。

标签: javascript html innerhtml


【解决方案1】:

确保始终使用 divID 变量,包括大小写。看起来您拼写错误并使用了“divId”,这是行不通的。在所有情况下都尝试这样,“divID”。

function loadThumbnail(divID) {
  document.getElementById("mainPicture").src = document.getElementById(divID).src;
  document.getElementById("mainPicture").alt = document.getElementById(divID).alt;
  document.getElementById("caption").innerHTML = document.getElementById(divID).alt;
}

案件很重要! divID != divId

【讨论】:

  • 就是这样!小伙子,我是不是觉得有点傻。不敢相信,从我的头顶飞过。也许我应该改用一个不太容易出现这种错误的命名约定。非常感谢!
  • 每个人都会遇到这种情况。现在你知道去寻找它了。听起来可能有点懒惰,但如果你的名字会给你带来麻烦,那么仔细使用复制/粘贴可以避免这个问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-29
  • 2019-07-06
  • 1970-01-01
  • 2019-02-24
  • 2018-05-22
相关资源
最近更新 更多